Header | Format | possibly empty? | Description |
---|---|---|---|
Id | Number | a unique number identifying the item | |
Equipment Name | Text | the item's name as used in-game | |
Short Name | Text | ✔ | a shorter name for certain cases where only limited space is available - only set if the original name is too long |
Rarity | Text | "Common", "Uncommon", "Rare", "Epic" or "Legendary" | |
Level | Number | the item's level | |
Introductory Level | Number | ✔ | the renown you have to have to find the item in campaign loot - empty for treasures |
Talent 1 | Number | ✔ | the first power token: "0" represents no token requirement, "1" for a minor token, "2" for a major token - empty for treasures |
Talent 2 | Number | ✔ | the second power token, "-1" if not weapon, divine weapon or staff, otherwise see encoding above - empty for treasures |
Card 1 (up to Card 10) | Text | ✔ | the name of the corresponding card - empty if item has less cards or is treasure |
Slot | Text | "Arcane Item", "Arcane Skill", "Boots", "Divine Armor", "Divine Item", "Divine Skill", "Divine Weapon", "Dwarf Skill", "Elf Skill", "Heavy Armor", "Helmet", "Human Skill", "Martial Skill", "Robes", "Shield", "Staff", "Treasure", "Weapon" | |
Set | Number | "0" for base items, "1" for AotA, "2" for EttSC, "3" for AA, "4" for AI, "5" for CM | |
Total Value | Number | the calculated item level based on the contained cards, usually "5" for treasures | |
Slot Default | Text | ✔ | contains the slot name to identify this item as default for its slot (usually filtered out before the custom filter gets applied) - empty for any actual collectible item |
Image | Text | the name of the image file that displays this item | |
Tags | Text | ✔ | special hints for the game (like "noLoot" for items that cannot drop) - empty for any regular item |
Manual Rarity | Text | ✔ | a manual set rarity for items that wouldn't meet the developer's demands otherwise |
Manual Value | Number | ✔ | a manual set value (and therefore level) for items that wouldn't meet the developer's demands otherwise |
Header | Format | strictly non-empty? | Description |
---|---|---|---|
ID | Number | ✔ | a unique number identifying the card |
Card Name | Text | ✔ | the card's name as used in-game |
Short Name | Text | a shorter name for certain cases where only limited space is available - only set if the original name is too long | |
Types | Text | ✔ | "Armor", "Assist", "Attack", "Block", "Boost", "Handicap", "Move", "Utility", or two of the types separated by comma |
Attack Type | Text | "Melee", "Projectile", "Magic" | |
Damage Type | Text | "Acid", "Arcane", "Cold", "Crushing", "Electrical", "Fire", "Holy", "Laser", "Piercing", "Poison", "Psychic", "Radiation", "Silver", "Slashing", "Sonic", "Unholy" | |
Damage | Number | the number of damage points this card causes | |
Minimum Range | Number | a minimum number of cells between your character and the target | |
Range | Number | the maximum number of cells between your character and the target | |
Move Points | Number | possible move range for moves and step attacks | |
Duration | Number | the time a card stays attached | |
Trigger (2) | Number | the number your die roll has to match or exceed | |
Keep (2) | Number | flag indicating if this card is discarded after activation | |
Trigger Effect (2) | Text | what type of effect does the roll have: "Armor", "Block", "Boost", "Handicap", "Move", "Special" | |
Text | Text | primary (active) card effect text | |
Trigger Text (2) | Text | secondary (passive) card effect text | |
Plus Minus | Text | "+" or "-" if card is rated above or below other cards with the same quality | |
Quality | Text | ✔ | the card's quality (title color), "E" for Black, "D" for Paper, "C" for Bronze, "B" for Silver, "A" for Gold, "AA" for Emerald, "AAA" for Amethyst |
Quality x (where x is either a class or a race) | Text | the card's quality if part of items of this class or race | |
Rarity | Text | (✔) | "Common", "Uncommon" or "Rare" |
Set | Number | ✔ | "0" for base items, "1" for AotA, "2" for EttSC, "3" for AA, "4" for AI, "5" for CM |
Level | Number | the card's complexity, the item's introductory level is the highest level of the contained cards | |
Slots | Text | the slots this card may appear in, separated by comma (may greatly differ from the actual items containing this card) | |
Flavor Text | Text | mostly funny notes (anecdotes, (fictional) citations) without effect on the game | |
Play Text | Text | text to show when card is (actively) played | |
Trigger Attempt Text (2) | Text | text to show before die roll | |
Trigger Succeed Text (2) | Text | text to show if roll succeeded | |
Trigger Fail Text (2) | Text | text to show if roll failed | |
Component1 (up to Component5) | Text | technical game component this card is built upon | |
Params1 (up to Params5) | Text | the parameter for the matching component | |
Params | Text | AI parameter | |
Function Tags | Text | AI hints | |
Attachment Image | Text | image to attach to terrain upon card effect | |
Status | Text | flag to indicate the card's implementation status | |
Audio Key (2) | Text | sound file to play upon card effect | |
Art | Text | flag to indicate the card's graphical status |
[column-header] comparator "value"
comparator: == (equals) or != (does not equal) or =~ (contains) or !~ (does not contain)
with square brackets "[", "]"
[Slot] == "Boots" (only show items that are boots)
[Rarity] != "Common" (exclude common items/cards)
[Types] =~ "Move" (find cards that include some notion of movement)
[Quality] !~ "A" (find cards with quality at most silver)
[] comparator "value"
[] =~ "Penetrating" (roughly find penetrating attack cards, checks whether any column of an item contains the given term)
[] !~ "Electrical" (exclude all cards that use the term Electrical somewhere, no column may contain the given term)
{column-header} comparator value
comparator: == or != or < or <= or > or >=
with curly brackets "{", "}"
{Range} >= 3 (find long range cards)
{Talent 1} == 0 (find token-less items)
{Level} < 12 (find items of some level or below)
[Talent 1] != "" and {Talent 1} <= 1 (find all not-treasure items with at most minor token requirement, for other methods of rule composition see next segment)
not [Types] == "Handicap" (exclude all pure handicap cards)
[Types] != "Handicap"
{Level} > 6 and {Level} <= 12 and [Rarity] =~"o" (find items that the Kyburz Market sells)
[Slot] =~ "Weapon" or [Slot] == "Staff" (find items with six cards)
[]=~"Penetrating" xor []=~"Unblockable" (find cards that are either penetrating or unblockable but not both penetrating and unblockable)
[Slot] == "Weapon" and {Level} <= 6 and ([Rarity] == "Common" or [Rarity] == "Uncommon") (find easy to collect weapons)
not ([Rarity] == "Common" or [Rarity] == "Uncommon") (will exclude the most regular drops)
a
, b
, c
, d
), the filter not a or b and c xor d
is evaluated as (not a) or ((b and c) xor d)
.
If you want or need another order of evaluation you have to add groups to your filter manually.
<quantifier> rule
quantifier: "!" (all cards match) or "?" (at least one card matches) or a number or a range separated with the "~"-sign (like 2~3)
rule: either a simple checking rule or a composed expression in parentheses
<?>[Types] =~ "Block" (find items with a block card)
<!>({Range} > 5 or [Types] == "Assist") (find items with only assists or long range cards, but the items don't have to be strict assist items or long range items, every combination of assists and long ranged is fine)
<2>[Card Name] == "Chop" (find items with exactly two Chops (the 5-damage variant only, there may or may not be other chops, too on this item))
<3~6>[] =~ "Penetrating" (find items with at least three penetrating cards)
<!>{Level} > 18 (find cards that are only available on items with a level above 18 or no item at all)
<3>( ) (find items with three cards on them)
<?>( ) (find cards that are contained on some item(s))
binding ~> rule
binding: @column-header#number or @@( with multiple of the simple bindings in here )
rule: either a simple checking rule or a composed expression in parentheses
@...#
-construct here is the header delimiter so you can't add additional spaces in between that aren't part of the column header.
Similarly the #number
-construct forms a unit you can't tear apart by spaces, hence, a simple binding can only be written this one way.
If you make use of the multi-binding-variant ( @@(...)
) you can either write the simple bindings with or without spaces in between.
If a value is bound to a number you can test against it using the notation #number
.@Card 1#0 ~> ([Card 2] == #0 and [Card 3] == #0) (find items where the first three cards are identical regardless of the concrete card used)
@@( @Card 1#1 @Card 3#3) ~> ([Card 2] == #1 or [Card 2] == #3) (find items where the second card is either the same as the first or the third)
@Duration#0 ~> {Damage} < #0 (find cards that inflict less direct damage than the number of rounds they stay attached)
<?><?>
-operator and checks your card against every card and your item against every item.
As this is somewhat similar to the "Items with Cards and Cards of Items" segment the operator and syntax are also alike:>quantifier< rule
quantifier: "!" (all cards/items match) or "?" (at least one card/item matches) or a number or a range separated with the "~"-sign (like 2~3)
rule: either a simple checking rule or a composed expression in parentheses
@Card Name#0 ~> >2<[Card Name]=~#0 (find cards that have exactly one 'sibling' - an other card that has the same name except for some additional parts, like "Team Heal" and the enemy-only card "Super Team Heal")
@@(@Slot#0 @Image#1) ~> >?<([Slot]!=#0 and [Image]==#1) (find items that reuse images of another slot's item)
[] =~ "Reliable" or <?>[] =~ "Reliable"
<!>[Damage Type] != "Piercing" (all cards of an item may not use piercing damage type)
<!>(([Trigger] == "" or {Trigger} <=3) and ([Trigger 2] == "" or {Trigger 2} <=3))
<?>[Types] =~ "Handicap" (some cards of an item must be handicaps)
<?>([Types] =~ "Handicap" and [Types] =~ ",") (some cards of an item must be hybrid handicaps)
<?>[Types] =~ "Handicap" and <?>[Card Name] =~ "Bash" (items with both handicaps and bashes)
<3 ~ 6>[Card Name] =~ "Chop" (find items with three or more chop cards)
<3 ~ 6>[Card Name] =~ "Chop" and <0>[Card Name] =~ "Clumsy" (to exclude them completely) or
<3 ~ 6>([Card Name] =~ "Chop" and [Card Name] !~ "Clumsy") (to allow them but exclude them from the calculated chop-card-count)
{Talent 1} <= 1 (check the first power token column for minor power token or none)
{Level} <= 14 (find items of level 14 or below)
{Introductory Level} <= 13 (find items that require renown of 13 or below)
@Equipment Name#0 ~> <!>( @Card Name#1 ~> <?>( [Equipment Name] == #0 and <2~6>([Card Name] == #1)))
Filter = _ Or _ / _
Or = And (_ ('|' '|'? / 'OR'i) _ And)*
And = Xor (_ ('&' '&'? / 'AND'i) _ Xor)*
Xor = Not _ ('^' / 'XOR'i) _ Not / Not
Not = ('!' / 'NOT'i) _ Not / Group
Group = '(' _ Or _ ')' / Rule
Rule = tRule / nRule / rRule / bRule
tRule = '[' Field? ']' _ [=!][=~] _ tVal
tVal = String / bID
nRule = '{' Field '}' _ nComp _ nVal
nComp = [!=]'=' / [<>]'='?
nVal = Int / bID
rRule = Quantifier _ rPred
rPred = Group / '(' _ ')'
Quantifier = '<' _ '!' _ '>' / '<' _ '?' _ '>' / '<' _ sNat _ '~' _ sNat _ '>' / '<' _ sNat _ [+-]? _ '>'
bRule = Binds _ '~>' _ Group
Binds = '@@(' _ (Bind _)+ ')' / Bind
Bind = '@' Field bID
bID "bind/bound id" = '#' Nat
Nat "natural number" = [0-9]+
sNat "signed natural number" = '-'? Nat
Int "integer" = '-'? Nat
Field "field name" = [a-zA-Z0-9_ ]+
String "string" = '"' [^\\"]* '"'
_ "spaces" = [ \t\n\r]*