Dulst has extensive in-app documentation for the effect builder. You won't need to refer to an external manual because every function of the effect builder is explained within the builder itself through tooltips.
This article is a guide for learning general effect building by going through examples in Animal Kingdom. Understand the effect that's being created on each example card by reading the effects description. Then open each of the example cards linked and open the effect builder for each effect. See what is selected. Thoroughly read the tooltips of all the selected fields. It's a good idea to follow this guide as it teaches you the basic concepts you will need in logical order.
First is the link to the example card, then the concept that is taught by reading it. If you're ever confused or not sure about something that you've read, ask with the help chat on the bottom right of your screen.
Make sure you have a understanding of Animal Kingdom card types before you start.
### Basic Effect Building
Start with the basics.
Example Card: [card: Sunrise]
Create an event card that targets a player and changes its properties.
Example Card: [card: Scaly Foot]
Create an event card that targets a card and changes its properties.
### Effect Building With Triggers
The examples above are all Event cards. Event cards can be played from the hand and will automatically have their effects run. That's why they do not have triggers, something that tells Dulst when to run the effect. The first column of the effect builder is the trigger list.
Example Card: [card: Seal].
Create an Animal that draws a card when it is played.
Example Card: [card: Panda].
Create an Animal that conjures a card every turn.
Animals, unlike Events, are not set up to auto run any triggers when played because they typically have a wider range of commonly used triggers. Events should not have an Invoke trigger set like animals, as that would cause it to run the effect twice.
### Player Targets
Example Card: [card: Dog] Select a card in your hand and give it +2 Cost. You gain 1 Max Mana.
Create a card for the player to personally target a card with a pointer arrow instead of the system auto targeting one that fits criteria.
### Remembering a Card and Saving It to Reuse.
Example: [card: Cow]
Doing multiple actions on the same card without repetitive targeting.
Rather than target the card over and over again, it's easier to target the card once and pass the card to subsequent lines through Target Criteria Passing. We select the card on the first line, then we name that selection by inputting the name in the name field on top of the effect builder box. Once you name something in one line, the effect builder will show that name in the Criteria Passing field when creating new lines. Next we simply pass the name onto the change stats lines later. Note that you can refer to cards or other things that are remembered by using the dollar sign preceding its name.
### Remembering a Property and Saving It to Reuse.
Example: Gain +1/+1 for every card in your hand.
Refering to saved properties with the $ symbol.
Count is a special property that counts the number of cards that were targeted. Later on, we refer to it with the $ symbol.
### Targeting Cards with Advanced Criteria
Example: Destroy an Animal that Costs Less than it. Stargazer Luna.
So far we've targeted cards only very basically. But we can use what we learned earlier to do more complex targeting.
### Positioning and caring about Card order with PosX
Example: [card: Parrot]
Example: [card: Social Drink]
Rather than have 2 mammals placed on the board after it as by default, place the mammals on either side of it. This means moving one of the mammals to the left by changing its posX property. The posX in the stack location is a reference to the posX of the card itself. Remember that when you use $dollar sign variables it references in order, any named effects, a card property, a player property, or finally a game property. In this case, since the card has a posX $posX is that of the card. Moving the newly created mammal to the same posX of the Social Drink card itself inserts the mammal to that spot and bumps Social drink down one.
PosX is a special
### Targeting Cards with Targeting Action and Saving Them
Example Card: [card: Fox]
Create a card with reusable custom targeting actions instead of creating the targeting individually.
You'll often find yourself selecting a card with an UI arrow and or doing advanced targeting in multiple cards. Rather than do the same thing over and over again use the Target in-play Character and Target Adjacent Cards actions to target cards easily. Just like with assign variable, name the line and it can be referred back to in later lines.
Most actions that have targets can refer back to those targets in the same way if named.
### Adding a new card to the game
Example: [Mole]
Typically use
add card to hand
### Targeting Cloned Cards
Example Card: [card: Kittens]
Cloned cards can also be named and subsequently targeted by stat changes.
### Verify Target
Example: [card: Hare]
Create a card whose effect has a condition.
Example: [card: Aquilegia]
Create a card whose effect has a condition, use it like an if-else.
The true effect is automatically triggered for verify target. The else effect is triggered by the effect completion.
### Using Indents and trigger next block to organize your effects
Example Card: If this is the only animal on the board, gain 2 mana.
Create a card whose effect has a condition.
Example Card: If your hand has less than 7 other cards, draw a card. Otherwise, deal 7 damage to the enemy King.
Create a card whose effect has a condition, use it like an if-else.
The true effect is automatically triggered for verify target. The else effect is triggered by the effect completion.
### Cards with Conditions
Example Card:
Create a card whose effect has a condition.
Condition is a special trigger that makes the card unplayable in hand until the condition has been met. When the condition is met, run the play condition validation action. This will make the card glow green.
### Undoing Changes
When you change a card property with the change stat option it is by default setup to undo the change when the card leavesPlay. leavesPlay is a special event that fires as a card is leaving play, such as when an animal is killed or returned to hand. You can overwrite that
### Creating effects that are constantly refreshing
Example: [card: Wolf] [card: Full Moon]
### Understanding Trigger Ordering and Timing
Example Card: Legacy: Adjacent units gets +1/+1. Legacy: Return to hand.
Create a card with multiple triggers that has a specific order.
Looking at the list of triggers, there are some that are pretty similar. Why are there multiple death triggers, including preDeath and death?
When an Animal dies it gets moved to a location called the afterlife. If you want your animal to come back after it gets moved
### Twists Triggers
Example Card: Bones
Twist cards are special event cards that do not get their first effect auto-runned. Rather they lie in wait until their trigger is called. Twist condition works similarly to regular condition. Only if the twist condition validation is called do the the twist card activate. This prevents Bones from activating on nothing.
### Spell Damage
Example Card: Bones
Read the full spell damage article here:
### Using Each
Example Card: 10 mana double the health of all friendly Animals.
Doing simple stat changes to cards do not need the each action. As you saw in earlier examples, simply target multiple cards to have the change apply to them all.
Example Card: [card: Shell] [card: Shell]
Each is used when each card targeted needs to have a slightly more complex thing done to it. Like verify target each auto runs its next line.
Example Card:
Each can also be used to do something a certain number of times.
### Trigger on event and trigger event
Example card:
What is the difference between trigger on event and effect trigger?
### Blocking and Non-blocking Timers
Example Card: Defile
Using a non-blocking timer to let other effects run ahead of it.
If you don't use a timer here units with health values of 1, 1, 3 would die. A timer here lets the entire damage calculation process to finish before retrying the loop.
### Creating a Power
Example Cards: Destroy an Animal that Costs Less than it.
So far we've targeted cards only very basically.