Every setting of a fight profile, section by section as the editor shows them, with its JSON key, its values, its default and what it changes in a fight.
This page describes every setting of a fight profile, in the order of the editor's sections. Each one gives the form's label, the key it has in the profile's JSON, its values and its default. A setting you leave out plays its default, so a profile only needs the settings you want to change. Rules have their own page: Rules and conditions.
A short profile already makes a full one:
{
"version": 1,
"name": "Air Cra",
"role": "damage",
"range": "ranged",
"elements": ["air"],
"positioning": "kite"
}
How the module decides explains what the module does with these settings, and Profile examples shows whole profiles for common cases.
General
| Setting | JSON | Values | Default |
|---|---|---|---|
| Name | name |
Text. Required. | |
| Description | description |
Text, for you and the people you share it with. | Empty |
| Extends | extends |
The name of another profile: Idle, one of yours or a package's. | None |
version |
1, the version of the profile format. Only in the JSON. |
1 |
Extend another profile explains Extends.
Archetype
Role
role: what the character is for in a fight. It sets the weight of each part of a turn's score (How a turn is scored).
| Value | JSON | Plays |
|---|---|---|
| Damage | damage |
Hits first. |
| Tank | tank |
Hits, and hinders the enemies more. |
| Support | support |
Hinders the enemies and helps its side first, hits less. |
| Healer | healer |
Heals first, helps its side, hits least. |
Empty, the default, takes the role the game ranks first for the character's class: Damage Dealer, Positioner and Summoner play Damage, Tank plays Tank, Healer plays Healer, and Protector, Buffer and Debuffer play Support. When the class isn't known, Damage.
Range
range: the distance the character fights at, and where it's placed when its spells aren't known yet.
| Value | JSON | Distance from the nearest enemy |
|---|---|---|
| Automatic | auto |
From the reach of its damaging spells, the weapon left out: when most of them reach 2 cells or less, melee; from 6 cells, long range; otherwise mid range. Without spells, mid range. |
| Melee | melee |
In contact. |
| Mid range | mid |
Half the reach of its longest damaging spell. |
| Long range | ranged |
The reach of its longest damaging spell. |
Default: Automatic. The reach counts the character's range bonus and the spells' range changes.
Elements
elements: the elements whose spells it favours, among Earth (earth), Fire (fire), Water (water), Air (air) and Neutral (neutral). A damaging spell of one of them scores 1.2 times as much. Empty, the default, favours none: the module casts whatever hits hardest with the character's real characteristics, which follows its build and gear.
Risk
risk: how much danger the character accepts, from 0 (careful) to 100 (reckless). Default: 50. The module avoids ending a turn where the enemies could deal it more than this percent of its life on their next turn, and where they could kill it, unless the risk is 100. The danger explains how that danger is worked out.
Placement
placement: where the character starts the fight.
| Value | JSON | Starting cell |
|---|---|---|
| Automatic | auto |
The one its first turn would go best from, less the danger there beyond its risk. Before its spells are known, by range: close for melee, far for long range, 4 cells from the nearest enemy otherwise. |
| Close | close |
The one nearest the enemies. |
| Far | far |
The one farthest from the enemies. |
Default: Automatic. The module only places the character when the Placement part is on (see Play).
Positioning
positioning: where the character ends its turn, once nothing is left worth casting.
| Value | JSON | Ends its turns |
|---|---|---|
| Automatic | auto |
At its range's distance, never where it can be killed when it can help it, nor beyond the danger its risk accepts. |
| Charge | charge |
In contact with the enemy, whatever the danger. |
| Hold | hold |
Where it stands: it only walks to reach a cast. |
| Kite | kite |
Once it has cast this turn, where the danger is least, then as far from the enemies as it can. Before that, it closes in as Automatic does. |
| Hide | hide |
As Kite, preferring a cell no enemy can see, behind a wall or a fighter, when the danger there is as low. |
Default: Automatic.
Focus
focus: which enemy it hits first. Hitting that enemy scores twice as much.
| Value | JSON | Hits first |
|---|---|---|
| Best score | auto |
No one in particular: whatever scores best. |
| Lowest life | lowestLife |
The enemy with the least life left. |
| Closest | closest |
The enemy nearest the character. |
| Most dangerous | mostDangerous |
The enemy that could deal the character the most where it stands. |
Default: Best score. Monsters and rules can add their own focus: see Monsters and Rules and conditions.
Allies
allies: how it treats the other fighters of its team, characters and summons.
| Value | JSON | Treats them |
|---|---|---|
| Ignore | ignore |
Only avoids hurting them: healing or buffing them counts nothing. |
| Help | help |
Heals and buffs them when it's worth it, and avoids hurting them. |
| Protect | protect |
As Help, and the danger they're in counts as much as its own, so it prefers turns that leave them safer: killing or hindering what threatens them first. |
Default: Help. Hurting its own side always counts against a turn, by default five times as much as hurting an enemy counts for it, whatever this says.
Play
Parts
parts: the parts of a fight the module decides. Each is on unless the profile switches it off.
| Part | JSON | When it's off |
|---|---|---|
| Placement | parts.placement |
The module doesn't move the character before the fight. On a relayed session, you place it yourself. |
| Ready | parts.ready |
The module doesn't say the character is ready: you do on a relayed session, otherwise the fight starts when the placement countdown ends. |
| Moving | parts.movement |
The character never walks in its turns: it casts from where it stands. |
parts.challenges |
Only in the JSON. The module doesn't choose challenges yet, whatever it says. |
The turns themselves are always played: to leave them to someone else, switch the module off, or pass every turn with the setting below.
Pass every turn
Pass every turn after (seconds): when checked, the character ends every turn after that many seconds, without acting. It's a rule without a condition, { "do": { "endTurn": { "after": 5 } } }, which the form shows here rather than among the rules. Idle is exactly that, with every part off.
Weapon
weapon: what it does with the weapon it holds, or with bare hands when it holds none.
| Setting | JSON | Values | Default |
|---|---|---|---|
| Weapon | weapon.use |
Prefer (prefer), Normal (normal), Avoid (avoid), Never (never), as for a spell (see Spells) |
Normal |
| Weapon hits per turn | weapon.maxPerTurn |
A number, 0 for no limit but the weapon's own | 0 |
Wait for allies
waitForAllies: how many other characters must be on the character's team before it says it's ready. Default: 0. It's for group fights where several bots join one after the other: the character waits for the others, and the placement countdown still starts the fight when it ends.
Spells
spells: what the profile says about some spells. A spell not listed is used normally, so only list the spells you want to change. Listing a spell the character doesn't have does nothing. The entries apply to the spells of a summon the character controls too: list a fairy's spell to change how the fairy uses it.
| Setting | JSON | Values | Default |
|---|---|---|---|
| Spell | id |
A spell, picked in Choose a spell. Required. | |
| Use | use |
Prefer (prefer, scores 1.5 times as much), Normal (normal), Avoid (avoid, half as much), Never (never, never cast) |
Normal |
| Per turn at most | maxPerTurn |
A number, 0 for no limit but the spell's own | 0 |
| Cast on | target |
Anyone (any), Enemies (enemy), Allies (ally), Self (self): who the spell may be aimed at |
Anyone |
| Enemies hit at least | minTargets |
A number: a cast must hit at least that many enemies | 0 |
| Only when | when |
A condition the cast must meet: see Conditions | Always |
A spell's condition can also test the fighter it's cast on, with Target · HP (target.life) and Target · Distance (target.distance). For example, an Iop's Chopper (13115), preferred but kept for enemies below a third of their life:
{
"id": 13115,
"use": "prefer",
"when": { "target.life": { "below": "33%" } }
}
The weapon isn't a spell entry: set it with Weapon in Play. An entry without a spell is refused with spells[0].id: required: the weapon is the profile's weapon.
Opening
opening: spells cast first in a turn, in order, whenever they can be cast. The module plays the rest of the turn as usual.
| Setting | JSON | When |
|---|---|---|
| First turn | opening.firstTurn |
In the character's first turn of the fight, before Every turn's. |
| Every turn | opening.everyTurn |
In each of its turns. |
Each list holds spells in the order they're cast. A spell listed twice is cast twice. The opening is the character's alone: a summon it controls never plays it. A step that can't be cast right now, for lack of AP, range or line of sight, is skipped, and the next one is tried.
In the JSON, a step is a spell's id, "weapon" for a weapon hit, or an object that also says whom to cast it on. For an Iop that casts Fervour (14676) on itself in its first turn, then opens every turn with Pressure (13106):
"opening": {
"firstTurn": [{ "spell": 14676, "target": "self" }],
"everyTurn": [13106]
}
The target takes the same values as a rule's: see Targets. The form edits plain lists of spells; a list with a step aimed at a target is edited in the JSON.
Monsters
monsters: what it does with some monsters, picked one by one (By monster) or by their race (By race).
| Setting | JSON | Values | Default |
|---|---|---|---|
| Monster or Race | id or race |
A monster, or a monster race. One of the two is required. | |
| Focus | focus |
First (first): hitting it scores twice as much. Last (last): half as much. Ignore (ignore): hitting it counts nothing. |
Empty: as any other |
| Keep away (cells) | keepAway |
The fewest cells the character ends its turns from it | 0 |
| Never stand beside | noMelee |
true: ends its turns at least 2 cells from it |
false |
An entry applies to every monster of the fight it matches. A monster that matches several entries, such as one by monster and one by its race, gets all of them: the focuses multiply, and the largest distance holds.
For a character that kills L'il Gloots (4109) first and keeps 3 cells away from every monster of the Incarnam Chafers race (137):
"monsters": [
{ "id": 4109, "focus": "first" },
{ "race": 137, "keepAway": 3 }
]
Weights
weights: what each part of a turn's score is worth against the others. The role sets them (How a turn is scored has the table), and a weight set here replaces the role's. Each is a number, 0 or more.
| Weight | JSON | What it weighs |
|---|---|---|
| Damage | damage |
Damage dealt. |
| Kill | kill |
An enemy killed. |
| Heal | heal |
Life healed. |
| Control | control |
Enemies hindered: AP, MP or characteristics lowered, pushed, put in a state. |
| Buff | buff |
Lasting help to its side. |
| Summon | summon |
A summon brought in. |
| Safety | safety |
Ending the turn out of danger. |
| Position | position |
Ending the turn at the profile's distance. |
| Unused AP | waste |
AP left unused. |
| Harm to allies | allyHarm |
Harm done to its own side. Default: 5. |
| Traps and glyphs | mark |
What the traps and glyphs it lays will do to the enemies. |
Weights are for fine tuning, after role, range, risk and the other settings. A weight of 0 switches a part off: "safety": 0 makes the character ignore the danger altogether. A name that isn't one of these is ignored, with a warning.
Challenges
Note
Coming soon. Profiles will say which challenges to choose and how hard to try for them. Until then, a challenges setting written in a profile is kept as it is and has no effect.
Next, Rules and conditions explains rules: what the character does when something happens in the fight.