Let Asterobot play a bot's fights: turn the fight module on, choose its profile and speed, see what changes on a relayed session, and read the turn log of its last fights.
Asterobot can play a bot's fights for it. The fight module places the character, says it's ready and plays each of its turns: it walks, casts spells, hits with the weapon and ends the turn, with the same messages the Dofus client sends. How it plays is up to the bot's fight profile.
The module plays fights, it doesn't start them. A fight begins when the character attacks a group of monsters, gets attacked or joins a fight, and that's the job of the bot's package, or yours when you play on a relayed session. Once a fight starts, the module plays it to the end, then waits for the next one.
What it decides
In a fight it plays, against monsters by default, the module decides each part of the fight that its profile leaves on:
| Part | What the module does |
|---|---|
| Placement | Picks the character's starting cell among its team's. With Automatic placement and the character's spells known, it picks the cell from which its first turn would go best, less the danger there beyond what the profile's risk accepts, should the monsters play first. |
| Ready | Says the character is ready, once enough allies have joined (Wait for allies). Without it, the fight starts when the placement countdown ends. |
| Turns | Walks, casts, hits and ends the turn, until nothing is left worth doing. |
| Summons it controls | Plays the turns of the summons the server gives the character to play, such as the Eniripsa's fairies, the same way: with the bot's profile and the summon's own spells, AP and MP. The opening stays the character's. Summons that play on their own, such as the Osamodas's, keep playing on their own. |
It also answers everything the Dofus client answers on its own during a fight, such as loading the fight's map and confirming each action it saw. Challenges aren't chosen yet: see Coming soon.
Each decision starts from what the fight looks like now. The module works out what the character can cast from each cell it can reach, how much each cast would deal or heal, and how dangerous each cell would be once the enemies play, then plays the turn its profile scores best. How the module decides explains it in full.
The module needs the bot's game version to be extracted. Without game data, it plays on what the game tells it alone, which makes for poor turns, and the bot's console says The fight module couldn't read the game data: it plays on without it.
A few cases it handles on its own:
- The character dies. The module has nothing left to decide, and keeps answering the game until the fight ends.
- The bot reconnects during a fight. The server hands the fight back, and the module plays the rest of it, the turn under way included.
- A fight the bot doesn't play, such as a duel by default. The module is off for it, as if Play this bot's fights were off. The bot's console says
The bot doesn't play this kind of fight: the fight module leaves it to the game client or a script. See The fights it plays.
Turn it on
The module has its own settings on each bot, on the bot's Fight tab.
- Open Bot Manager, click the bot's name, then the Fight tab.
- Switch on Play this bot's fights. The change is saved at once.
- Pick a Profile in the list and click Apply. Leave it empty to play the default profile.
- Pick a Speed.
- Check the Fights it plays: Monsters alone by default. See The fights it plays.
While the module plays a fight, Playing the fight under way appears next to the switch. The settings are kept with the bot, so they survive a restart. When saving fails, Couldn't save the fight settings says why.
You can switch the module on or off during a fight. It takes effect at the start of the next turn, so a turn is never played by two players at once. Before the first turn, it takes effect at once.
With the module off, Asterobot sends nothing at all during the bot's fights: the fight is the package's or yours.
The bot's package can also override these settings while its script runs: turn the module on or off, play another profile, change the speed or the fights it plays. A profile the script plays plays every fight, against players too. The Fight tab then says what the script overrides, and your settings play again once it stops. On a relayed session the switch stays yours. A script can also take some of the module's decisions itself, such as where to place or what to do in a turn: the turn log marks them By the script.
The fights it plays
Fights it plays chooses which fights the module plays. Each kind is the Play this bot's fights switch for those fights: in a fight of a kind left unchecked, the module is off and sends nothing, so on a relayed session you play it, and on a Full socket bot nothing does. The game says what a fight is just after loading its map, so the module, when it's on, answers that load whatever the fight; it turns off for the rest of the fight at once.
| Choice | The fights |
|---|---|
| Monsters | Fights against monsters, and breaches. The only one checked by default. |
| Aggressions | A player attacking the bot's character, or the character attacking a player. |
| Duels | Duels between players. |
| Kolossium | Kolossium fights. |
| Perceptors and prisms | Fights for a perceptor, a prism or an alliance's territory. |
The module plays fights, it doesn't start them: accepting a duel or registering for the Kolossium is the package's job, or yours.
Once a fight against players is checked, Profile in PvP fights chooses the profile the bot plays in them, from the same list as Profile. Left empty, the bot plays its Profile in every fight.
Warning
The module doesn't know the spells of enemy characters yet: it reckons each one hits bare-handed. It plays fights against players, but its sense of danger is low there, and the Fight tab says so.
The profile
The Profile list holds every profile the bot can play: Idle, your own, and those your packages ship, named after their package, such as @some-author:fighters/fire-cra. Edit profiles opens the Fight Profiles page.
| Choice | How the bot fights |
|---|---|
| Empty, shown as Default profile | Every setting at its default. It adapts to any character: the role its class plays first, the range its spells reach, the spells it really has. |
| Idle | Takes part in the fight and passes every turn after 5 seconds. Nothing else: no placement, no ready. |
| Any other profile | As that profile says. |
The profile is read again when each fight starts, so a profile you change plays from the next fight. When the profile can't be played, because it was deleted, has an error or its package was removed, the bot plays the default profile and its console says The fight profile can't be played: the default profile plays. A profile you deleted stays selected in the list, so you can see what the bot is set to.
Speed
The speed sets how fast the module acts. Whatever the speed, it decides the same things.
| Speed | Before each decision | Its answers to the game |
|---|---|---|
| Slow | Thinks 1.5 to 4 seconds | Sent once the Dofus client would have played what happened |
| Normal (the default) | Thinks 0.6 to 1.8 seconds | Sent once the Dofus client would have played what happened |
| Turbo | Decides at once | Sent at once |
Warning
Turbo answers at once after every cast, faster than any real game client: it's easy to notice. The server accepts it, but anyone watching the bot's fights, or its timings, can tell.
On a relayed session
A bot in MITM mode (man-in-the-middle: the bot relays the session of a Dofus client you play) can play its fights too. Your Dofus client keeps showing the fight as it happens, but while the module plays, the clicks you make for what the profile decides do nothing: Asterobot holds them back. That means your moves, spells and the end of your turns, and the placement and ready buttons when the profile leaves those parts on. When you click anyway, the game client shows, at most every 10 seconds, a popup in the bot's language:
Asterobot's fight module is playing this fight, so the game doesn't take what you do here. Turn the module off to play from the next turn.
What the profile leaves off stays yours: with Placement off in its Parts, you place the character yourself and the module plays the turns. To take the whole fight back, switch the module off: you play from the next turn.
MITM mode explains relayed sessions.
Turn log
The Turn log at the bottom of the Fight tab keeps every decision of the bot's last 10 fights, until Asterobot restarts. The newest fight comes first and is open: it shows when it started, Under way while it lasts, its map and how many decisions it had. The refresh button next to the title reads the log again.
Each decision reads like this:
| Part | What it shows |
|---|---|
| Time and round | When it was sent, and the fight's round. |
| Action | Placement, Ready, Move, Cast or End of turn. |
| Details | The cell, or the spell and the cell it was cast on. Weapon or bare hands is a hit with the weapon. |
| Score | What the profile made of it, then what that score counted: damage, kill, heal, control, buff, summon, safety, position, unused AP, harm to allies. |
| Also weighed | The next best options, with their scores. |
| Not answered | The server didn't take the action. The module decided again without it. |
| By the script | The bot's script took this decision instead of the AI. |
When the profile names spells the character can't cast in a fight, nor a creature its spells summon, that fight lists them at its top, by name: the module ignored them. It happens with a profile written for another class, or for a spell variant the character didn't pick.
Watching a fight
During a fight, the bot's Map tab shows the fight's map with every fighter where it stands and its life, as they walk, get pushed and die.
Coming soon
Note
Coming soon. These parts of a fight aren't played by the module yet:
- Challenges. The module doesn't choose challenges. On a relayed session, choosing them stays yours, even while the module plays; on a Full socket bot, none is chosen.
- A live board on the Fight tab, showing the fight as the module sees it.
Next, How the module decides explains how it chooses each action, and Fight profiles how to make and share profiles.