Aller au contenu
Afficher dans l'application

Une meilleure façon de naviguer. En savoir plus.

Asterobot

Une application plein écran sur votre écran d'accueil avec notifications push, badges et plus encore.

Pour installer cette application sur iOS et iPadOS
  1. Appuyez sur Icône de partage dans Safari
  2. Faites défiler le menu et appuyez sur Ajouter à l'écran d'accueil.
  3. Appuyez sur Ajouter dans le coin supérieur droit.
Pour installer cette application sur Android
  1. Appuyez sur le menu à trois points (⋮) dans le coin supérieur droit du navigateur.
  2. Appuyez sur Ajouter à l'écran d'accueil ou Installer l'application.
  3. Confirmez en appuyant sur Installer.
Every connection state a bot can show, what each button on a bot does, and the alerts that appear when a connection or a script fails.
A bot's connection and its script each have a state, and the bot's page and Bot Manager give you the buttons to change them.
Connection states
State What it means What you can do Disconnected No connection, and not waiting for a game client. Connect, with an account, or Start waiting. Connecting… A connection attempt is running: signing in to Ankama, talking to the login server or opening the game server connection. Wait, or click Disconnect to cancel it. Awaiting your answer The bot needs you to pick a server in the Pick a server card. Pick a server, or click Disconnect. Connected to login server The login stage is done but no game server connection is open. It shows for a moment between two stages of a Full socket connection, and it stays after a Full socket bot's game connection dropped. Click Disconnect, then Connect again. Waiting for your game client The bot waits for a Dofus client you play, in MITM mode. It can stay like this indefinitely. Start Dofus and sign in, or click Disconnect. Connected to game server The bot has a game server connection: its own in Full socket mode, or your game's session in MITM mode. Play, or Disconnect. A bot only changes state because you asked it to, because its schedule did, or because a connection attempt finished, a relayed session arrived, or a connection dropped. When a connection drops, nothing reconnects unless the bot's schedule is in one of its time slots: a Full socket bot stays on Connected to login server, and a MITM bot goes back to Waiting for your game client.
On a bot whose schedule is on, Connect, Start waiting, Disconnect, Play and Stop put the schedule on hold until its next time slot starts or ends. Schedule explains how.
Full socket mode and MITM mode describe the path through these states in each mode.
Script states
The Behavior column of Bot Manager shows the state of the bot's script:
State Meaning Running The script of the loaded package runs. Stopped No script runs. The bot may still have a package loaded. Failed The script stopped with an error. The bot's page shows why. The header of a bot's page
The header has two groups of controls, one for the connection and one for the package.
Connection
While the bot is Disconnected, the group shows Connect and Start waiting. Connect is greyed out for a bot without an account, with the tooltip "This bot has no Ankama account to sign in with." In every other state, it shows Disconnect, which ends whatever is happening: a connection attempt, waiting, or a connection. When Connect fails, Asteroboard shows Couldn't connect the bot with the reason. When Start waiting fails, it shows Couldn't put the bot into waiting, and when Disconnect fails, Couldn't disconnect the bot.
Package
The package the bot will play: its name and version, Inline script for a pasted script, or No package selected. When several versions of that package are installed, it's a menu to move the bot to another version, with a link to the package's page. Run a package explains the version switch. Play starts the script of the loaded package. It's greyed out until the bot is Connected to game server, with the tooltip "Connect the bot to a game before playing a behavior." With nothing loaded, it opens the load dialog instead of playing. If the script can't start, Asteroboard shows Couldn't start the behavior. Stop replaces Play while the script runs. It stops the script and leaves the connection as it is. Couldn't stop the behavior means it failed. The menu at the end of the group holds three entries: Load a new package opens the Load a behavior selection dialog. Choose Library package, and pick an installed package or click Download one, or choose Inline script and paste a script, then click Load a new package at the bottom of the dialog. The script that was running is stopped first, and the new choice isn't started: press Play afterwards. The dialog's own description says loading doesn't affect a running script, but it does stop it. If loading fails, Asteroboard shows Couldn't load the selection. Load a package and play it opens the same dialog and presses Play once the package is loaded. Unload package stops the running script and clears the bot's package, which then shows No package selected. Couldn't unload the package means it failed. There's no reload button: to restart a script, click Stop, then Play. Loading a package with the dialog also sets the bot's language back to French, as Bot settings explains. Run a package covers playing packages in detail.
Row actions in Bot Manager
The three dots at the end of a bot's row in Bot Manager open the same actions, grouped the same way, plus Delete bot:
Action Available Connect While the bot is Disconnected and has an account. Start waiting While the bot is Disconnected. Disconnect In every other state. Play, or Stop while the script runs Play once the bot is Connected to game server. Load a new package Always. Unload package Only when the bot has a package or an inline script loaded. Schedule… Always. See Schedule. Delete bot Always. See Disconnect, delete and restart. Load a package and play it is only in the header of the bot's page, and Delete bot only in this menu.
Problems alerts
When something fails, a red alert appears under the header, on every tab of the bot's page:
Alert When it appears Couldn't connect this bot The bot's last connection attempt failed. It shows the reason. The behavior stopped with an error The script ended with an error, including when its game connection was lost. It shows the error. The text is selectable, Copy puts it on your clipboard, and Dismiss hides the alert. A dismissed alert stays hidden until a different error comes or you reload the page. The connection alert goes away when you click Connect again.
Some script errors never reach this alert. When a script can't even be loaded, for example because of a syntax error or an import that doesn't resolve, Asteroboard only shows Couldn't start the behavior, without the reason. For a package from your library, the bot's Settings tab shows the reason, under Package settings. Errors thrown once the script has started do reach the alert. Package errors helps with both.
One connection attempt at a time
A bot runs one connection attempt at a time. Asteroboard only offers Connect and Start waiting while a bot is disconnected, so you rarely run into this. If a second attempt arrives anyway, for example from another open Asteroboard tab, Asterobot refuses it and Asteroboard shows Couldn't connect the bot.
A bot also has one game session at a time: it can't wait for your game client while it's connected on its own, or sign in on its own while it relays your game.
Where to go next
Bot page, for the tabs of a bot's page. Run a package Disconnect, delete and restart Schedule Lire cette page en français
  • 60 vues
Change a bot's account, game version, language, server selection, device identifier and default package after adding it, and know when each change applies.
Everything you chose when adding a bot can be changed later, except its name, on the Settings tab of its page. Two of them, Account and Game version, can only change while the bot is disconnected.
Open the settings
Open the bot's page and click Settings. Two sections sit at the top:
Bot configuration, the bot's own settings, described on this page. Package settings, the settings and actions of the package the bot plays. See Package settings and actions. The two are saved separately, and switching between them keeps what you typed in each.
The fields
Field What it is When a change applies Name Shown so you can copy it. It can't be edited: to rename a bot, delete it and add it again. Account The stored Ankama account the bot signs in with. Same field as in Add a bot. When you save. The bot must be disconnected. Game version Latest, which follows each new Dofus version, or the version the bot stays on, with the same badges as in Add a bot. When you save. The bot must be disconnected. Language See Language. When you save. Server selection and Force server How the bot picks a server when it signs in on its own. See Full socket mode. At the next Connect. Proxy The proxy the bot opens its connections through: Same as the account (...), Always connect directly, or a stored proxy. See Proxies. At the next Connect. A running session isn't touched. Device identifier (HWID) See Device identifier. At the next Connect. Package The package the bot plays by default, with Download one to install one from the marketplace. At the next Play. A running script isn't touched. Unlike Add a bot, this page lets you save a game version that isn't ready yet. The bot can't connect until the version is ready.
A bot's account can be replaced, but not removed: the list has no empty choice, and a bot without an account stays without one until you pick an account. To get a bot without an account, add a new one.
The Package list can't be emptied either. To clear a bot's package, use Unload package in the package menu of its page, described in States and controls.
Save
Save settings saves the whole section at once: every change you made goes through together, or none does. Discard changes puts back the saved values. While you have unsaved changes, Unsaved changes shows next to the buttons, and a dot marks Bot configuration when you look at the other section.
On success, Asteroboard shows Settings saved. On failure, it shows Couldn't save the settings with the reason.
Save settings stays greyed out when:
nothing changed; the chosen account shows Not signed in, or no longer exists in Account Manager; no game version is chosen; the account or the game version changed while the bot isn't Disconnected; Always this server is selected without a server. The bot's state changes constantly while you edit, as it connects or runs. Fields you edited keep your value; the others follow the bot.
Fields locked while connected
As long as the bot isn't Disconnected, including while it waits for your game client, Account and Game version are greyed out, with the notice "Disconnect this bot to change its account or its game version." Those two decide how the bot itself is built, so Asterobot rebuilds the bot when they change, and a live session belongs to the account that opened it. Click Disconnect in the header, make the change, then save.
Warning
Before choosing another account, check that no other bot uses it. When Asterobot refuses the new account or game version, for example this account is already associated with a bot, or when it can't confirm your asterobot.net account at that moment, the bot disappears from Bot Manager until Asterobot restarts. It comes back at the next start with its previous settings.
Language
The choices are Français, English, Deutsch, Español and Português.
Today the bot's language changes one thing you can see: the language of server names and descriptions in the bot's server lists and on its Information tab. It doesn't change the language a script receives: every script started from Asteroboard gets fr, whatever this field says. See Identify and run.
Two things set it back without you touching this field:
Add a bot only saves its Language when a Library package is chosen. Otherwise the bot starts in French. Load a new package and Load a package and play it save French as the bot's language. Moving the bot to another version of its package, from the package name in the header, keeps the language as it is. Device identifier
The device identifier, labelled Device identifier (HWID), is the value a bot sends to the game's login server for its device when it signs in on its own, the way Dofus sends one for the computer it runs on. It's 64 hexadecimal characters.
A bot with an Ankama account gets a random one when it's added, unless you typed one. It's kept from then on: it doesn't change by itself between connections or when Asterobot restarts. A bot without an account has none at first. When it relays a game for the first time, it takes the identifier your Dofus sent, and keeps it even if a later client sends another. A relayed session always carries your game's own identifier, so this value is only a record. To change it, paste or type 64 hexadecimal characters, or click Generate for a random one, then save. Lowercase letters are accepted and saved as capitals. Anything else shows "Must be 64 hexadecimal characters." Emptying the field and saving keeps the current identifier.
Where to go next
Package settings and actions, for the other section of this tab. Run a package States and controls Lire cette page en français
  • 60 vues
Run several bots from one Asterobot, with one Ankama account each in Full socket mode or several Dofus clients in MITM mode, and understand the bot limit.
One Asterobot can run many bots side by side. Each one is added and controlled on its own, the way Add a bot and States and controls describe. What changes with several bots is how accounts, game sessions and names fit together, and that's what this page is about.
Names
Pick names you'll recognize at a glance, such as farm-astrub or alt-2: names are the only thing that tells bots apart in lists and in their page addresses, and they can't be changed later. Bot Manager sorts bots by name.
In MITM mode, names also decide which bot takes a new game session first, as explained below.
Full socket mode: one Ankama account per bot
Every Full socket bot needs an Ankama account of its own. Dofus allows one game session per account, and Asterobot refuses a second bot for an account that already has one: Add a bot fails with Couldn't add the bot, and a bot's Settings refuse it with this account is already associated with a bot. So store one account for each bot in Account Manager, as Add an account shows.
Each bot connects when you click its own Connect. There's no button to connect every bot at once.
Ankama sign-ins happen one at a time across all your accounts. When several bots connect at once, each one waits for the previous account's sign-in step to finish, and an account signing in through the browser, which can take up to two minutes, keeps the others on Connecting… in the meantime. Connecting bots one after the other avoids the wait piling up.
Each bot also gets its own random device identifier when it's added. See Bot settings.
MITM mode with several Dofus clients
In MITM mode, short for man-in-the-middle, every Dofus client started from the same Dofus folder goes through Asterobot while at least one bot is waiting: the line Asterobot changes in that folder applies to all of them. All clients share the same two ports, and Asterobot matches each session with a bot by the Ankama account it signed in with. MITM mode explains the rule.
The first time, a bot without an account attaches itself to the first account whose session it takes, in alphabetical order of the waiting bots. To decide which bot relays which account, attach them one by one:
Add one bot per account you play, without accounts, with names you'll recognize. Click Start waiting on the first bot only. Start a Dofus client and sign in with the account you want on that bot. The bot shows Connected to game server, and its console shows Attached to Ankama account. Click Start waiting on the next bot, start another client and sign in with the next account. Repeat for each bot. From then on, click Start waiting on all of them and start your clients in any order: each session goes to the bot attached to its account, even after Asterobot restarts. A session for an account no bot is attached to goes to any waiting bot that isn't attached yet, and when there's none, it plays normally without going through a bot.
A bot with an Ankama account can wait too, but its attachment isn't kept across restarts, and it doesn't have to match the account stored for it. For relaying several games, bots without accounts are easier to keep in order.
For clients running on other computers, see MITM across machines.
The bot limit
Adding bots and connecting them in Full socket mode depend on your asterobot.net account. Two messages can stop you:
Message What it means this installation is not entitled to start bots Asterobot couldn't confirm your asterobot.net account. That happens when Asterobot isn't signed in, when it hasn't reached asterobot.net for more than an hour, or when asterobot.net refused it. this account's bot limit has been reached You already have as many bots as your asterobot.net account allows. The first one is checked when you add a bot, when you change a bot's account or game version, when you click Connect, and when Asterobot brings bots back as it starts. The second one is checked when you add a bot and when Asterobot brings bots back as it starts, and every bot listed in Bot Manager counts towards it, connected or not. Putting a bot in waiting for your game client isn't subject to either check.
Where you see them depends on what you did. Connect shows the message in Couldn't connect the bot and in the bot's alert, and Save settings shows it in Couldn't save the settings. Add a bot only shows Couldn't add the bot, without the reason.
What to do:
For the first message, check the account button at the bottom of the sidebar. If it doesn't show your asterobot.net name, sign in again as Sign in with asterobot.net explains, and make sure the computer where Asterobot runs can reach asterobot.net. For the second, delete a bot you no longer use, then add the new one. Where to go next
MITM mode Disconnect, delete and restart Your account Lire cette page en français
  • 66 vues
The difference between disconnecting and deleting a bot, what Asterobot brings back when it starts, and why nothing reconnects or plays by itself without a schedule.
Disconnecting a bot and deleting it both stop it, but only one of them keeps it. Closing Asteroboard and stopping Asterobot don't do the same to your bots either.
Disconnect or delete
Disconnect Delete bot Where Header of the bot's page, and its menu in Bot Manager Only the bot's menu in Bot Manager Running script Stopped Stopped Connection Closed. A relayed session ends too, which disconnects your Dofus. Closed, the same way Waiting for your game client Stopped. If no other bot waits, the line in your Dofus folder is put back. Stopped, the same way The bot and its settings Kept Forgotten Package settings and message selection Kept Forgotten Console history Kept Gone Account attached in MITM mode Kept Forgotten Stored Ankama account Kept Kept To use the bot again Connect or Start waiting Add it again from scratch To delete a bot:
In Bot Manager, open the bot's menu and click Delete bot. The Delete this bot? dialog reminds you that it stops the running behavior, closes the bot's connections and forgets the bot and its saved configuration, while the stored account is kept. Click Yes, delete. If deleting fails, Asteroboard shows Couldn't delete the bot. Delete isn't in the header of the bot's page, so it can't be clicked by mistake while you watch a bot run.
What Asterobot brings back when it starts
Every bot is saved in bots.toml, in Asterobot's data folder. When Asterobot starts, it brings each one back with everything you set: its name, account, game version, language, server selection, device identifier, default package, package settings, message selection, schedule and fight settings, from the fight module's switch, profiles and speed to the fights it plays and the Faster fights switches. It also keeps what it learned: the server the bot last connected to and, for a bot without an account, the Ankama account it attached to. The terminal shows Bots restored from config with how many were restored out of how many were saved.
What doesn't come back:
Connections. Every bot starts Disconnected, including bots that were waiting for your game client. Running scripts. Nothing plays. An inline script you loaded on a bot. Its default package stays. The console history. Asterobot keeps the last 200 lines of each bot's console while it runs, and starts empty. The attachment of a bot with an account that waited for your game client. Bots without an account keep theirs. Nothing reconnects or plays by itself
Asterobot never connects a bot or starts a script on its own, unless you gave the bot a schedule and switched it on. Asterobot then connects it, plays its package and disconnects it at the times you chose, including right after Asterobot starts. Without a schedule, signing accounts in to Ankama, or starting scripts, is something that only happens when you click. That holds in every situation:
When Asterobot starts, bring each bot online again with Connect or Start waiting, then press Play on the ones that should run a package. When a Full socket bot's game connection drops, the bot shows Connected to login server and its script stops. Click Disconnect, then Connect, then Play. When you quit Dofus in MITM mode, the bot keeps waiting and takes your next session by itself, because you left it waiting. The script that was running stopped, though: press Play again once your game is back. Bots that don't come back
Asterobot skips a bot at start, instead of failing, when:
its Ankama account is no longer in Account Manager; the version it's set to is no longer installed in Game Manager, for a bot on a fixed version. A bot on Latest comes back on the newest version there is; Asterobot couldn't prepare Ankama sign-ins, for example because the computer had no internet access as Asterobot started. This only affects bots with an account; Asterobot couldn't confirm your asterobot.net account in the first seconds after starting, for example because it wasn't signed in or asterobot.net didn't answer in time. Then every bot is skipped. A skipped bot doesn't appear in Bot Manager, and its page says "This bot isn't registered (or was removed)." The terminal shows a warning starting with skipping bot restore: followed by the reason, such as account not found or game version not installed.
Its configuration isn't lost. It stays in bots.toml, and the bot comes back at the next start once the cause is fixed: add the account again with the same Login ID, reinstall the game version, or sign Asterobot in, then restart Asterobot.
Warning
Adding a new bot with the name of a skipped bot replaces the skipped bot's saved configuration for good.
Closing Asteroboard, stopping Asterobot
Closing Asteroboard stops nothing. Your bots stay connected and their scripts keep running, because they live in Asterobot, not in the page. Open Asteroboard again, from any browser, to find them as they are.
Stopping Asterobot stops everything. Every bot disconnects, including bots relaying the game you're playing, so your Dofus is disconnected too, and every script stops. Stopped normally, with Ctrl+C or Shutdown server, Asterobot also puts back the line it changed in your Dofus folder. If it's stopped abruptly, it puts that line back the next time it starts.
The three parts explains what lives where, and First launch how to stop and start Asterobot.
Where to go next
States and controls Files and folders, to back up bots.toml and accounts.toml. Reset and start over Lire cette page en français
  • 64 vues
What a package gives your bots, where packages come from, and how to read the badges Library Manager shows for each one.
A bot on its own connects to Dofus and nothing more. What it does once it's in the game comes from a package: you install packages in your library, then give one to each bot.
What a package holds
A package is a small set of JavaScript files, its script, that Asterobot runs for a bot. You don't need to read or write that code to use a package.
Besides the script, a package can declare package settings, the options you fill in on the bot's Settings tab (which resource to harvest, how long to wait), and actions, buttons on the same tab that run part of the script when you click them. Package settings and actions shows how to use both.
A package can also depend on other packages and use their code. Those dependencies are packages like any other: they get their own row in your library and run together with the package that needs them.
Your library
The library is the set of packages installed in your Asterobot, on the computer where Asterobot runs. Library Manager shows it, one row per package version. Nothing about it is stored in your browser, so every Asteroboard connected to the same Asterobot sees the same library.
Installing a package doesn't make it do anything. It runs when a bot plays it, and each bot that plays it runs a copy of its own. Trusting a package explains what that script is allowed to do with your bot.
Versions side by side
Each version of a package is installed on its own. my-harvester 1.0.0 and my-harvester 1.1.0 are two rows in Library Manager, and both stay until you remove one. Base is the exception: Asterobot deletes its old versions itself, see Base updates by itself.
That's on purpose. A bot is set to one exact version, so a new version arriving in your library never changes what your bots play. When you update a package from the marketplace, the new version lands next to the old one, and you move each bot to it when you're ready. Update packages walks through it.
Where packages come from
Source How it gets into your library Badge The marketplace, the Library category of asterobot.net Download package in Library Manager, or Download one wherever you choose a package for a bot. See Install from the marketplace. Community or Official A package you write New package in Library Manager, then the editor. See Create a package. Local A copy of one of your local packages Copy to a new version in the package's menu. See Manage your library. Local A .zip file Import a .zip in Library Manager. See Manage your library. Depends on the name you give it The command line The library install command. See Command line. Depends on the name you give it Local, Community and Official
The Provenance column of Library Manager shows one of three badges. Asterobot picks it from the package's name.
Badge The name looks like What it means Local my-harvester A package of your own, created, copied or imported under a plain name. Only local packages can be edited in Asteroboard. Community @some-author:auto-harvest Installed from a marketplace file that an asterobot.net member published. After the @ comes the author's name, after the : the file's title, both in lowercase with hyphens. Official @asterobot:auto-harvest Installed from a marketplace file that asterobot.net marks as official. A marketplace package keeps the name it got the first time you installed it. If its author renames the file on asterobot.net later, your package keeps its name, and updates still find it.
Note
A package imported from a .zip file gets the name you type, which can start with @. It then shows Community or Official without coming from the marketplace. Trusting a package explains how to check where a package really comes from.
Script authors will find the naming rules in Names and versions and How your package is named.
Compatible and Incompatible
A package can state which versions of Asterobot it works with. When it does, the Compatibility column shows Compatible or Incompatible, depending on the Asterobot you run. When it states nothing, the column stays empty and no version is checked.
An incompatible package stays in your library, and the package pickers still offer it, with (incompatible) after its name. It won't start, though: Play fails with Couldn't start the behavior, without saying why. On a bot set to that package, the Settings tab, under Package settings, gives the reason, which ends with package "<name>" requires asterobot <versions>, running <your version>. Update the package, or Asterobot, until the two match. Authors can read Compatibility.
Dependencies
The Dependencies column shows how many packages a package depends on. Hover the number to see their names.
When you install a package from the marketplace, Asterobot also downloads the packages it depends on. When a dependency declares settings of its own, they get their own section on the bot's Settings tab.
You can remove a package that another one depends on. Asteroboard warns you first, and the package that needed it then fails to start.
Where to go next
Install from the marketplace Run a package Lire cette page en français
  • 67 vues
Find a package on asterobot.net, check what it will install as, and add it to your library from Library Manager or straight from a bot's package picker.
The marketplace is the Library category of asterobot.net, where players share packages. You browse it on the website, then paste a file's link or ID into Asteroboard, and Asterobot downloads the package into your library, with the packages it depends on.
Asterobot downloads files with your asterobot.net account, so it must be signed in first. See Sign in with asterobot.net.
1. Find a package on asterobot.net
Open https://asterobot.net/files/category/2-librairie/. The download forms in Asteroboard also have a Browse packages on asterobot.net link that opens it. Open the page of the file you're interested in. Read what it does and who published it before you go further: Trusting a package explains what a package can do with your bot. Copy the page's address from your browser, for example https://asterobot.net/files/file/6-testscript5/. The number at the start of the last part, 6 here, is the file's ID. Either one works. The marketplace describes the website side.
2. Preview it
In the sidebar, open Library Manager and click Download package. The Download a package from asterobot.net dialog opens. Paste the address or the ID in File ID or URL. Asteroboard accepts a number alone, or an address that contains /file/ followed by the number and a hyphen, like the one above. Click Preview. Asteroboard asks asterobot.net what the file is and shows it on a card. Nothing is downloaded yet, and a preview doesn't count as a download for the author.
On the card What it tells you The title The file's title on asterobot.net. Official or Community Whether asterobot.net marks the file as official. See What is a package. Author The publisher part of the package's name: the author's name in lowercase with hyphens, or asterobot for an official file. Will install as The exact name and version the package will have in your library, such as @some-author:auto-harvest@1.2.0. A line can appear under the card:
"This version is already in your library": that exact name and version is installed. There's nothing to download, so you can close the dialog. You don't have permission to download this file. in red: Install stays greyed out. Who can download a file is decided on its page on asterobot.net, and your account isn't allowed to download this one. To try another link, click Change, then paste the new one.
3. Install
Click Install.
Asterobot downloads the file and installs it, then downloads every package it depends on that isn't in your library yet. When everything is in, the dialog closes and Package installed appears. The package has its own row in Library Manager, and so does each dependency that was downloaded with it.
The installation happens inside Asterobot. Closing the dialog or Asteroboard while it runs doesn't stop it.
Next, give the package to a bot: Run a package.
Install from a package picker
When you're choosing a package for a bot, you don't have to leave for Library Manager. The package picker has a Download one button next to its list in three places: the Behavior / Script tab of Add a bot, the Load a behavior selection dialog, and Bot configuration on a bot's Settings tab.
Click Download one. A small form opens under the list, saying it "Downloads it into your library, then selects it here." Paste the address or the ID in File ID or URL and click Preview. The same card appears. Click Install. When the package is already in your library, the button reads Use it instead, and selects the installed copy without downloading anything. The form closes and the package is selected in the picker. Cancel closes the form and leaves the selection as it was.
What can go wrong
Message Where What to do Not a valid file ID or asterobot.net file URL. Under the field The text is neither a number nor the address of a file page. Copy the address of the file's own page, not of the category. Preview stays greyed out until it's fixed. File not found, or you don't have permission to view it. Under the field, after Preview The file doesn't exist, your account can't see it, or Asterobot couldn't ask asterobot.net, for example because it isn't signed in. Check the address, then the account button at the bottom of the sidebar. You don't have permission to download this file. Under the card Your account isn't allowed to download this file. The file's page on asterobot.net decides who is. Couldn't install the package Notification The download or the installation failed. The notification gives no reason. It happens when Asterobot can't find the package's index.js in the file, when the file has more than one attachment, when it's larger than 32 MiB, when asterobot.net refuses the download, or when one of its dependencies can't be installed. When a dependency is what failed, the package itself may already be in your library without it, and it won't start. Try the installation again later, or remove the package.
Package errors covers problems with packages you've already installed.
Where to go next
Run a package The tutorial Run a marketplace package goes from the website to a running bot. Lire cette page en français
  • 59 vues
Give a bot a package, start and stop its script, switch it to another version, run a quick inline script, and know what's kept after a restart.
A bot plays one package at a time. You choose which one and the bot remembers it; its script then runs each time you press Play, as long as the bot is connected to a game. Script authors will find what happens inside the script in Play, stop and reload.
Set, and running
What a bot is set to play and whether it plays it are two separate things.
The bot's page shows the package it's set to play in its header: name@version, Inline script or No package selected. That stays when the script stops. After Asterobot restarts, the package stays too, but an inline script is gone. Play turns into Stop while the script runs. In Bot Manager, the Behavior column says Running, Stopped or Failed. So a bot can be set to a package without running it. You can also change a bot's package while its script runs: the script carries on, and the change applies at its next start. Load a new package is the exception, since it stops the script first.
Choose a package
Where How When it takes effect Add a bot On Behavior / Script, select Library package and pick it under Package. It's saved with the new bot. When the bot signs in right away (Sign in now), Play behavior directly starts it as soon as the bot is connected. See Add a bot. The bot's Settings tab Under Bot configuration, pick it under Package, then click Save settings. At the next Play. A running script isn't touched. The menu next to Play Load a new package, below. Right away: the running script is stopped. Each picker lists every package in your library as name@version, and offers Download one to install a package from the marketplace on the spot. See Install from the marketplace.
Load a new package
On the bot's page, open the menu next to Play and choose Load a new package. The Load a behavior selection dialog opens. Leave Library package selected and pick the package under Select an installed package. Click Load a new package at the bottom of the dialog. Asteroboard first stops the script the bot is running, then sets the bot to the package you picked, as if you had chosen it on the Settings tab. The dialog's description says loading doesn't affect anything already running, but it does stop the current script. Nothing starts until you click Play.
Note
Loading from this dialog also sets the bot's Language to French, whatever it was before. If the bot uses another language, pick it again on its Settings tab.
Load a package and play it, in the same menu, opens the same dialog and presses Play for you once the package is loaded. If the bot isn't connected to a game, the package is loaded but Couldn't start the behavior appears.
In Bot Manager, each bot's row menu also has Load a new package, which opens the same dialog. When loading fails, Couldn't load the selection appears, without a reason.
Unload package
Unload package, in the same menu, stops the running script and clears the bot's package. The header then reads No package selected, and Play opens Load a behavior selection instead of starting anything. The package settings you saved for that package stay with the bot, ready if you load it again.
In the Bot Manager row menu, Unload package is greyed out while the bot has nothing loaded. If unloading fails, Couldn't unload the package appears.
Play and Stop
Play starts the package the bot is set to play. It stays greyed out until the bot is Connected to game server, with the tooltip "Connect the bot to a game before playing a behavior." A Full socket bot gets there after Connect, a MITM bot once your Dofus client has joined it. See Full socket mode and MITM mode.
When the bot has nothing to play yet, Play opens the Load a behavior selection dialog instead.
Each start reads the package's files as they are in your library at that moment. There's no Reload button: to restart a script, click Stop, then Play.
Stop ends the script. The bot stays connected to the game.
The same Play and Stop are in each bot's row menu in Bot Manager.
When it doesn't start
What you see What it means Couldn't start the behavior The script couldn't even start. The notification gives no reason. Common causes: the package was removed, it's incompatible with your Asterobot, one of its files has an error, a dependency is missing, or its files were changed after it was installed from the marketplace. The behavior stopped with an error, at the top of the bot's page The script started, then failed. The alert shows the complete error with a Copy button. See Bot page. Couldn't stop the behavior Stopping failed. Tip
When Couldn't start the behavior gives you nothing to go on, open the bot's Settings tab and click Package settings. When the package can't be read, the alert Couldn't read this package's settings there shows the actual reason.
Package errors lists the errors and their fixes.
Switch to another version
When your library holds several versions of the package a bot plays, the package name in the bot's header becomes a menu.
Click the package name in the header. The menu lists every installed version of it, newest first. The current one has a check mark, and versions incompatible with your Asterobot are shown in orange. Click the version you want. Now set to version followed by the version confirms it. If a script is running, the notification adds "The running behavior keeps going until you play or reload.": the script keeps running the version it started with until you click Stop and Play.
The same menu has View this package, which opens the package's page. With only one version installed, the package name is a link to that page instead of a menu. If switching fails, Couldn't switch version appears, without a reason.
The name in the header turns orange when the version the bot is set to is incompatible.
Run a quick inline script
For a quick test that doesn't deserve a package, a bot can run code you paste. This is mostly useful when you write scripts: see Your toolbox.
Open the menu next to Play and choose Load a new package. Select Inline script and paste the code into the box. Click Load a new package, then Play. An inline script is a single file that's never saved. It goes away when you load something else, when you click Unload package and when Asterobot restarts. It has no package settings.
Loading an inline script doesn't change the package the bot is set to. When the bot already had one, its header keeps showing that package, but Play runs the inline script until one of the events above clears it. The header shows Inline script only for a bot that has no package set.
After a restart
When Asterobot starts again, every bot comes back disconnected, with no script running. Nothing connects or plays by itself, except bots whose schedule is in one of its time slots. Each bot is still set to its package and version, with its package settings, so connect it and click Play. An inline script isn't kept: load it again.
The same goes when a bot's connection drops: the script stops with it, and it doesn't start again when the bot reconnects. See Disconnect, delete and restart.
Where to go next
Package settings and actions Console, to watch what the script does Lire cette page en français
  • 58 vues
Change the options a package declares for a bot, apply them while the bot runs, and use the buttons a package adds.
Many packages let you adjust what they do without touching their code: which resource to gather, how long to wait, a list of names to answer. Those options are the package settings, and the buttons a package adds are its actions. Both are on the bot's Settings tab, and both come from the package the bot is set to play. When time slots of the bot's schedule play other packages, a list above the cards picks whose settings you see: the bot keeps settings for each package it plays.
Open them
On the bot's page, click Settings. Click Package settings, next to Bot configuration. The section starts with the package the settings belong to, as name@version, and a Refresh button that reads them again, for example after you changed the bot's package from another tab.
Below come the cards, one for each package of the bot's script that declares at least one setting or action: the package the bot is set to play, and the packages it uses. A card's title shows the package name, its version and a count such as "3 setting(s) · 1 action(s)". The first card is open and the others are closed; click a title to open or close a card. The cards come in no fixed order, so the bot's own package isn't always the first one: check the names.
These are the settings of the package the bot is set to play, whether a script runs or not. You can change them while the bot is stopped: the script uses them at its next start.
The section can also show one of these instead:
What you see Why No package selected, with "Settings come from the package a bot plays. Load one from the bot's quick actions, then come back." The bot isn't set to any package. An inline script has no settings either. See Run a package. "This behavior declares no settings and no actions." Neither the package nor any package it uses has anything to set. Couldn't read this package's settings, followed by a reason Asterobot couldn't read the package: it was removed, it's incompatible with your Asterobot, one of its files has an error, or its files changed after it was installed from the marketplace. The text under the title is the exact error. See Package errors. The fields
Each field's label, description and default value come from the package. The kind of field depends on the type of the setting:
Setting Field On or off A switch. One value from a fixed list A dropdown with the choices the package offers. Text A text box, sometimes with an example in grey. Whole number A number box whose arrows move by 1. The package can set a minimum, a maximum, and a unit shown in the box, such as seconds. Decimal number A number box, with the same optional minimum, maximum and unit. List One row per item, numbered from 0, each with a button to remove it, and Add under the rows. An empty list says "Empty list." All the items have the same type: on or off, text, whole numbers or decimal numbers. Map One row per entry, with a Key box, the value and a button to remove it, and Add an entry under the rows. An empty map says "No entries." A row whose key is empty is left out. A few details save surprises. Clearing a number box doesn't store an empty value: the field keeps the last number you typed. The minimum and maximum only guide the arrows, and Asterobot checks them when you apply. A new list item starts off, empty or at 0, depending on its type.
Apply your changes
What you change stays in the page until you apply it, so a running script never sees a value you're still typing.
Change one or more fields in a package's card. Not applied appears on the card's title. Click Apply, under the fields. Asterobot checks every value against what the package declares, saves the card for this bot, and passes the new values to the running script if there is one, without restarting it. A notification confirms it with the package name, such as my-harvester settings applied. Whether the script acts on a change right away depends on how its author wrote it.
Reset puts the card back to its saved values. Apply and Reset stay greyed out while nothing has changed. Each card is applied on its own, and none of this goes through Save settings on Bot configuration.
When a value is refused, Couldn't apply the settings appears with the reason, and nothing from the card is saved:
Reason, for example What's wrong delay: 5 is below the minimum 10 The number is under the minimum the package set. delay: 900 is above the maximum 600 The number is over the maximum. count: want a whole number, got 2.5 A decimal number in a whole-number setting. package "my-harvester" declares no parameter "delay" The package changed while the page was open. Click Refresh and try again. Where settings are kept
Package settings are saved per bot, under the package's name. Another bot playing the same package has values of its own. A bot keeps its values when its script stops, when Asterobot restarts, and when you switch it to another version of the same package. When a newer version drops a setting or changes its type, the saved value no longer applies and the setting shows the package's default again.
A dependency's card holds that dependency's own settings. On one bot, every package that uses the same dependency shares those values.
Settings in the Add a bot dialog
When you pick a library package on the Behavior / Script tab of Add a bot, its settings appear right under the picker, under Settings, so the bot starts with your values. There's no Apply there and no actions, since the bot doesn't exist yet: Asterobot saves the values right after adding the bot, before connecting it. If that fails, Couldn't apply the settings appears with the package name. The bot is added anyway, with the package's defaults, and you can set the values again on its Settings tab.
Actions
A package's actions are buttons under Actions in its card, each with a lightning bolt. Hover one to read what it does.
An action runs inside the bot's script, so it only works while the bot plays one. Otherwise the buttons are greyed out, and hovering one says "The bot has to be playing a behavior before an action can run."
Click the action. If it needs values from you, a dialog opens with the action's name as its title and one field per value, filled with the package's defaults every time it opens. Fill them in and click Run, or Cancel. Action started appears: the action has been handed to the script. When the script is done, a notification gives the action's name followed by finished, or by failed with the error. The name is the one the package uses in its code, which can differ from the button's label. A failure notice stays on screen until you close it. A failed action doesn't stop the script: the bot keeps playing.
When an action can't be handed to the script at all, Couldn't start the action appears with the reason:
Reason What happened no behavior is running on this bot The script stopped before you clicked. the running behavior declares no action "<action>" on package "<package>" The script that runs isn't the one this page describes: an inline script, or a version that was running before you switched. Click Stop, then Play. The value's name followed by a reason A value from the dialog was refused, for the same reasons as settings. If you write packages, Declare settings, Read settings and Declare actions explain the other side.
Where to go next
Update packages Bot settings, for the Bot configuration section of the same tab The Studio, for the settings of a plan drawn in the Studio Lire cette page en français
  • 59 vues
Check asterobot.net for new versions of your marketplace packages, install them next to the old ones, move your bots over and clean up.
When an author publishes a new version of a package on asterobot.net, nothing changes in your library until you ask. You check for updates, install the new version next to the one you have, move your bots to it when it suits you, then remove the old version. Only packages installed from the marketplace can be updated this way.
Base updates by itself
@asterobot:base, Asterobot's official package, is the exception: Asterobot installs it and keeps it up to date by itself.
When Asterobot starts, then every hour, it asks asterobot.net for base's current version and downloads it when your library doesn't have it. It asks again as soon as you sign in to asterobot.net, so even a first start gets base within moments. Every package that depends on base, and every bot set to play base itself, plays the newest version of base in your library, whatever version it was made with or set to. A script that's already running keeps its version until you click Stop, then Play. A version of base made for a newer Asterobot is downloaded too, but nothing plays it until you update Asterobot: packages keep the newest version your Asterobot can run. Asterobot deletes the older versions of base that nothing uses any more, so your library usually keeps only one. It keeps a version a package imports by its exact version, and a newer one waiting for an Asterobot update. If you remove base, Asterobot downloads it again right away, as it would for a library that never had it. Older versions of base stay in your library until you remove them.
1. Check for updates
In Library Manager, click Check for updates, at the top left of the page.
Asterobot asks asterobot.net for the current version of every package you installed from the marketplace. Update check complete then says how many updates it found, and each package with a newer version gets a button in the Update column: Update to followed by the version.
Good to know about the check:
Nothing is checked automatically, except base. The buttons show the result of your last check until you check again or reload Asteroboard. A version counts as newer when its number is higher: 1.10.0 is newer than 1.9.0. When a version number doesn't follow that usual form, any different version counts as an update. When the version on asterobot.net is lower than yours, for example because the author took a release back, no update is offered. A package whose file can't be read on asterobot.net any more, because it was deleted or hidden, is skipped without a message. Local packages are never checked, since they have no file on asterobot.net. If the check fails, Couldn't check for updates appears.
The page of a marketplace package has the same check in its Updates row: Check for updates, then "Up to date" or a line such as "Version 1.3.0 is available", and a Check again button.
2. Install the new version
Click Update to followed by the version, on the package's row or at the top of its page.
Asterobot downloads the new version, with any dependency you don't have yet, and installs it next to the version you have. Update installed confirms it with a line such as "@some-author:auto-harvest 1.3.0 is installed alongside 1.2.0. Point a bot at it to use it."
The old version is untouched, and every bot keeps playing it. Its Update to button goes away.
If the new version is already in your library, for example because you already updated from another row, nothing is downloaded again.
If the installation fails, Couldn't install the update appears, without a reason. The causes are the same as for a first installation: see Install from the marketplace.
3. Move your bots
Each bot is set to an exact version, so you move them one at a time:
On the bot's page, click the package name in the header and pick the new version. See Switch to another version. Or on the bot's Settings tab, under Bot configuration, pick the new version under Package and click Save settings. A script that's already running keeps the old version until you click Stop, then Play.
To see which bots still use the old version, open that version's page from Library Manager. Bots playing this version lists every bot set to it, running or not.
What happens to package settings
Package settings are saved per bot under the package's name, not its version. A bot you move to the new version keeps the values you gave it.
If the new version removed a setting, renamed it or changed its type, the old value doesn't carry over to it, and the setting starts from the new version's default. Look at the bot's Package settings after moving it. If you move the bot back to the old version, its old values come back, unless you applied new values to the same settings in the meantime.
4. Remove the old version
Keep the old version as long as you might want to go back: moving a bot back is instant and needs no download. When no bot needs it any more:
In Library Manager, open the menu at the end of the old version's row and choose Remove. Read the dialog. It warns you when bots are still set to that version, or when other packages depend on it. These warnings don't block anything. Click Yes, remove. A bot still set to a removed version can't start its script until you move it to another version. Dependencies installed with the old version stay in your library: remove them the same way once nothing needs them. See Remove a package.
If you publish packages yourself, Publish an update covers the author's side.
Where to go next
Manage your library Trusting a package Lire cette page en français
  • 61 vues
Everything in Library Manager and on a package's page, including importing and exporting .zip files, copying packages and removing them.
Library Manager lists every package installed in your Asterobot. From there you install, create, import, copy, export and remove packages, and each package has a page of its own with its details.
The Library Manager page
The buttons at the top are Check for updates on the left, and Import a .zip, Download package and New package on the right.
Under them, a Filter... box narrows the table to the rows that contain what you type. Click the Name, Version or Provenance heading to sort by that column. The table shows 10 rows per page, and says "No scripts installed yet." while the library is empty.
Column What it shows Name The package's name. Click it to open the package's page. Version The installed version. Each version of a package has its own row. Provenance Local, Community or Official. See What is a package. Compatibility Compatible or Incompatible, only for a package that states which versions of Asterobot it works with. Dependencies How many packages this one depends on. Hover the number for their names. Empty when there are none. Update An Update to button, once a check for updates found a newer version. See Update packages. Last column The row's menu. Right-clicking anywhere on a row opens the same menu. Row actions
Action Offered for What it does Edit code Local packages Opens the package in the editor. See The editor. Copy to a new version Local packages Opens the Copy this package dialog. See Copy a package. Export Every package Downloads the package as a .zip file. See Export. Remove Every package Opens the Remove this script? dialog. See Remove a package. Only Local packages can be edited or copied. A package with a Community or Official badge stays as it was installed.
A package's page
Click a package's name in the table to open its page.
The top of the page shows the name, the version, the provenance badge and, when the package states it, the compatibility badge. On the right: Update to once a check found a newer version, Edit code for a local package, and the same menu as in the table.
The details card has a row for each fact that applies:
Row Shown for What it says Publisher Marketplace packages The publisher part of the package's name. Compatible with Packages that state it The versions of Asterobot the package works with, such as >=1.5.0 <2.0.0. Source Packages installed from the marketplace View on asterobot.net opens the file the package came from. Updates Packages installed from the marketplace The update check for this package. See Update packages. The Plans card lists the plans drawn in the package's Studio, for every package, with Open to read one and Copy into... to copy it into one of your packages. See The Studio.
The Manifest card lists what the package declares about itself: its Dependencies, with the version of each, its Permissions, and Compatible with. For a local package, the card is a form where you add and remove dependencies and permissions, then click Save manifest, or Reset to undo your changes. For any other package it's read-only and says "Published by someone else, so this is read-only". Editing a manifest is explained for authors in The manifest.
Other versions installed appears when your library holds other versions of the same package, with a button to open each one.
Bots playing this version lists the bots set to this exact version, whether their script runs or not. Click a bot to open its page. With none, it says "No bot is set to play this version."
If the package doesn't exist any more, for example because it was removed in another tab, the page says "This package isn't installed (or was removed)."
Create a package
New package opens the New local package dialog: type a Name, keep or change the Version (1.0.0 by default) and click Create and edit. Asteroboard creates a package with starter code and opens it in the editor. Create a package walks through it for script authors. With Start with the Studio turned on, the package plays a plan you draw instead: see The Studio.
When that name and version are already installed, a warning appears saying they already exist and would be replaced, but Create and edit stays greyed out: unlike importing or copying, creating a new package never replaces one that's already there. Change the name or the version to go on.
Import a .zip
A .zip file is how packages travel outside the marketplace: what Export produces, and what you get when you download a package's file from asterobot.net yourself.
Click Import a .zip. The Import a package from a .zip dialog opens. Drop the file on "Drop a .zip here, or click to choose one", or click that area to pick it. Type a Name. A plain name, such as my-harvester, makes a local package you can edit. A name in the form @publisher:name is allowed too, and makes a Community package, or an Official one with @asterobot:, which can't be edited. Check the Version. When the file's name ends with a version, as in my-harvester-1.2.0.zip, Asteroboard fills the field in for you, unless you already typed something. Click Import. Package imported appears with the package's name and version.
The name and version always come from the dialog, never from the file. The archive holds the package's .js or .mjs files and its asterobot.json if it has one, with index.js at its root, the way Export builds it. It can't be larger than 32 MiB.
Important
Compress the package's files, not the folder that holds them. Asterobot accepts an archive of a single folder only when it lists nothing but that folder's contents, and many archiving tools also add an entry for the folder itself: the import then fails. Zip files and the command line gives the exact rules.
Importing doesn't install the packages this one depends on. Install them first, or the package won't start.
An imported package has no link to the marketplace, even when its files came from there: no Source row, no updates, and no check that its files stay as they were (see Trusting a package). To keep those, install from the marketplace instead.
Message What to do This replaces the installed <name> <version>. A package with that name and version is already installed. Importing replaces its files. Change the name or the version to keep both. A local package name can't contain ':' or '@'. A plain name can't contain those characters. A marketplace name looks like @publisher:name. A name that starts with @ needs a publisher, a : and a name. A marketplace name has exactly one ':' and one leading '@'. Remove the extra : or @. Couldn't import the package The import failed. The notification gives no reason: the file may not be a .zip, have no index.js at its root (often because a folder was compressed instead of its files), be larger than 32 MiB, or contain an invalid asterobot.json. Export
Choose Export in a package's menu. Your browser downloads the package as a .zip file named after the package and its version, without the @ and with - in place of the :: version 1.0.0 of @alice:mining becomes alice-mining-1.0.0.zip.
The file holds the package's code, and its asterobot.json when it has one. Use it as a backup, to move the package to another Asterobot with Import a .zip, to read a package's code, or to publish your own package: see Share it.
Copy a package
Copying a local package is how you carry it forward to a new version, or start a variant under another name.
In the package's menu, choose Copy to a new version. The Copy this package dialog opens, with the same Name and a Version whose last number is one higher: 1.0.0 becomes 1.0.1. Change the name or the version if you like. Click Copy. A notification says Copied to followed by the new name and version, and the editor opens on the copy. The code, the dependencies, the permissions and the compatible versions come along. The original package isn't touched, and bots keep playing it until you move them.
Message What to do That's the package you're copying. Change the name or the version. Copy stays greyed out until the name or the version differs. This replaces the installed <name> <version>. That name and version already exist, and copying replaces them. Change the version to keep both. A new package is local, so its name can't start with '@' - those are assigned by the marketplace. A copy is always local. Remove the @. Couldn't copy the package, with a reason The copy failed. The reason is shown in the dialog. Remove a package
In the package's menu, choose Remove. The Remove this script? dialog opens. It names the version it removes from the local library, and reminds you that a bot running it keeps running until its script is stopped. Read the warnings, if there are any. One says how many installed packages depend on this one and lists them with their versions. The other says how many bots are set to this package and lists their names. Click Yes, remove. Neither warning blocks the removal. Once the package is gone, a script that's running keeps running, but its next start fails with Couldn't start the behavior, and so does the next start of any package that depended on it. Bots stay set to the removed version, with their package settings, until you give them another package.
Removing @asterobot:base works too, but Asterobot downloads it again right away: see Base updates by itself.
If removing fails, Couldn't remove the script appears.
From the command line
Asterobot has three commands for the library: library install installs a package from a folder, library list lists every installed version with its provenance and publisher, and library remove removes one version. See Command line, and Zip files and the command line for authors.
Where to go next
Trusting a package The Studio, to draw plans in a package Files and folders, to find where the library is stored Lire cette page en français
  • 67 vues
What a package's script can and can't do with your bot and your game session, how Asterobot checks marketplace packages, and how to decide whether to run one.
A package is code someone else wrote, running with your bot's game session. Before you play a package you didn't write, know what it can reach.
What a package can do
When a bot plays a package, its script can do the following. Everything here also applies to the packages it depends on, since their code runs in the same script.
It can What that means for you Send any message to the game server It acts as your character: move, fight, talk in chat, trade, sell, delete items. Anything the Dofus client can ask the server for, the script can ask for too. Read what the game sends Your chat, your inventory, the players and monsters around you, and everything else the server sends to the bot. Change or block messages on a MITM bot In MITM mode, short for man-in-the-middle, the bot sits between your Dofus client and the server. The script can change or drop what your client sends before the server gets it, and what the server sends before your client shows it. It can also send messages to your client as if they came from the server. Read the session's game ticket That ticket is what a stranger would need to take over the game session. Close the game connection On a MITM bot, that disconnects the game you're playing. Read game data Items, monsters, maps and texts of the bot's game version. Write to the bot's console and to Asterobot's own log Lines you read on the bot's Console tab or on Server > Console. Add settings and actions Fields and buttons on the bot's Settings tab. Caution
Whatever a package does in the game, it does with your Ankama account. Only play packages from authors you trust, and remember that using bots breaks Ankama's terms of use. See Accounts and safety.
What a package can't do
It can't Details Use files A script can't read or write anything on your computer: not your settings, not your stored Ankama accounts, not other packages. The only code it can load is its own package's and that of the packages it depends on. Use the internet No web requests and no connections of its own. The bot's game connection is the only one it talks through. Reach other bots Each bot runs its own copy of the script. A script can't see or control another bot. Read your Ankama login A script gets the game session, not the account. It never receives the login or password stored in Account Manager. Control Asterobot It can't install packages, change the bot's settings or package settings, or connect and disconnect other bots. Installing a package runs none of its code. The package runs when a bot plays it. Its top-level code also runs, without any access to the game, each time Asterobot reads the package's settings: in Add a bot, on a bot's Settings tab, and when a bot starts it.
A script also runs within limits. For example, code that works for more than 5 seconds without pausing ends the script. Authors will find the list in Limits and the details of what scripts can reach in What scripts can do.
How Asterobot checks marketplace packages
When Asterobot installs a package from the marketplace, it records a fingerprint of the package's files. Each time the package is loaded after that, when a bot starts it, when you load it, when its settings are read and when a package that depends on it is loaded, Asterobot compares the files with that fingerprint. If anything changed, it refuses the package with package source integrity mismatch.
So a marketplace package on your computer stays exactly as it was downloaded. Changing its files by hand makes it unusable, and Asteroboard doesn't let you edit it either: Edit code and Copy to a new version aren't offered for it.
When the check fails, Play only says Couldn't start the behavior. The bot's Settings tab, under Package settings, shows the full error. To fix it, remove the package and install it again from the marketplace.
The check proves the files are the ones you downloaded. It says nothing about whether the author's code is safe. Packages you create, copy or import from a .zip file have no fingerprint.
Permissions are listed, not enforced
A package can list permissions in its manifest, such as gamedata. They appear on the package's page, under Permissions in the Manifest card, or "No permissions declared." when there are none.
For now they're the author's own description of what the package uses. Asterobot doesn't enforce them: a package that lists no permission can still do everything in the table above.
Note
Coming soon. Asterobot will enforce the permissions a package lists. Until then, don't rely on them to limit what a package does.
Authors can read Permissions.
Official and community
Official packages come from marketplace files that asterobot.net marks as official, and install under a name that starts with @asterobot:. Community packages come from files published by asterobot.net members, under a name made of the author's name and the file's title.
Both badges come from the package's name, and a package imported from a .zip file gets the name you type. Such a package can show Official or Community without ever coming from the marketplace. To be sure where a package comes from, open its page: only a package installed from the marketplace has a Source row, and its View on asterobot.net button opens the file it was downloaded from.
Before you play a package
Read the file's page on asterobot.net: who published it and what it says the package does. On the package's page in Library Manager, look at its Dependencies. Their code runs too. Read the code if you can. Edit code opens a local package, and Export gives you the files of any package as a .zip. Play it while you watch: keep the bot's Console open, and click Stop as soon as the bot does something you didn't expect. Where to go next
Install from the marketplace Console Lire cette page en français
  • 69 vues
The header every bot page shares, with the character's status, its connection and package controls, the tabs below it, the server choice card and the alerts that report problems.
Each bot has a page where you watch it and control it. Open Bot Manager and click the bot's name: the page opens on the Console tab. Every tab shares the same header, so the controls and the alerts described here are always in reach.
The header
The bot's name sits on the left, with its character's status beside it. On the right are two groups of controls: one for the bot's connection, one for its package.
Status
The menu beside the bot's name is the game's status menu, the one at the game's chat box. It shows your character's status with its dot, in the game's colours, and changes it.
Warning
This really changes your character's status in the game, for every player.
Status What the game says about it Available (green) "Anyone can interact with you." Away (orange) "Nobody can interact with you, but you can receive private messages." Away... (orange) The same, with a message the game sends back to whoever whispers your character: a window asks for the Reason for being away:, 256 characters at most. Hovering over the menu shows your message. Private (blue) "Only your friends can interact with you. This status is not retained after logging out." Solo (red) "Nobody can interact with you." The names, the descriptions and the colours are the game's, in Asteroboard's language. The menu shows the status the game confirms: if the game refuses the change, or you change the status from your own game client on a relayed bot, it shows what the game says. Idle, orange too, is the status the game client sets by itself after a while without activity: the menu shows it when the game reports it, but doesn't offer it, as in the game.
As in the game client, a character entering the game counts as Available until the game reports a change. The menu is greyed out until the bot is Connected to game server, with the tooltip "The character must be in the game to change its status." Each change also prints the game's own line in the console, such as "Away status activated.": see Console.
If the dots are all grey, the game version was downloaded or extracted before Asterobot read the status colours. Use Download more files in the version's menu, then extract it again: see Manage game versions and Extract the game data.
Connection
The first group shows the bot's connection state, next to the buttons that change it.
State Buttons Disconnected Connect, which signs the bot in with its Ankama account, and Start waiting, which makes it wait for your Dofus client. Connect is greyed out for a bot without an account, with the tooltip "This bot has no Ankama account to sign in with." Any other state: Connecting…, Connected to login server, Awaiting your answer, Waiting for your game client or Connected to game server Disconnect, which ends whatever the bot is doing. States and controls explains each state. Full socket mode and MITM mode explain the two ways to connect.
When one of these buttons fails, a notification says so: Couldn't connect the bot with the reason, Bot's game version isn't ready yet, Couldn't put the bot into waiting or Couldn't disconnect the bot. See The bot doesn't connect.
Package
The second group is about the bot's package:
The package the bot is set to play, as name@version, Inline script or No package selected. When several versions of that package are installed, it's a menu to switch between them; otherwise it opens the package's page. It turns orange when the version is incompatible with your Asterobot. Play, which becomes Stop while the script runs. Play is greyed out until the bot is Connected to game server, with the tooltip "Connect the bot to a game before playing a behavior." A menu with Load a new package, Load a package and play it and Unload package. Run a package explains each of them.
Tabs
Tab What it's for Console What Asterobot says about the bot, what its script writes, and the game chat. See Console. Character The character sheet as the game sends it, with the game's own icons and the class portrait, and the Jobs card: each job's level, its experience to the next level, what it harvests at that level, and the next resource it unlocks with the level it needs. The jobs show as soon as the character has entered the game, without the live character switch, and stay as Last known once the bot disconnects. Information The Ankama account and the server of the bot's session. Its name turns orange while the bot waits for you to pick a server. See Information. Map The character's map, live: who is around and what can be used, and controls to walk, change map and use doors, zaaps and resources. See Map. Fight The fight module: whether it plays the bot's fights, the profile and speed it plays them with, and the turn log of the last fights. See The fight module. Chat The chat module: whether the bot talks on its own, and which of its ads, replies, triggers, commands and status, the chat profiles they come from, the guard's state with Stop sending, each ad's state and the last lines, commands and triggers. See The chat module. Inventory The character's items, kamas and pods. See Inventory. Tools The Network tool, to watch the bot's messages and send messages by hand, and the Memory tool, which shows what the bot's scripts keep in its memory. See Network traffic and Send messages by hand. Settings Bot configuration, the bot's own settings (see Bot settings), and Package settings (see Package settings and actions). Each tab has its own address, so reloading the page keeps you on the same tab.
Pick a server
A bot's connection sometimes stops to ask you which game server to join: when the bot is set to ask every time, or when it can't choose by itself because its forced server isn't available or no server is online and open to the account. The state then reads Awaiting your answer, and a Pick a server card appears under the tabs, whichever tab is open, with "This bot is set to always ask - choose which server to connect to below."
The card shows one tile per server, with its picture, name and number, a status badge (Online or Maintenance), its server type, Mono-account for mono-account servers and, where the account has characters, how many. The information icon next to a name shows the server's description. Only the servers you can join right now can be clicked; the others are greyed out.
Click a server, and the connection carries on. If your answer can't be sent, Couldn't send your answer appears.
When a bot starts waiting for an answer while you're somewhere else in Asteroboard, a notification tells you, such as Bot "my-bot" needs your input, with a Go to bot button. Server selection itself is explained in Full socket mode.
Problems
Red alerts under the tabs report what went wrong, on every tab:
Alert What it reports Couldn't connect this bot The bot's last connection attempt failed. The text is the reason. The behavior stopped with an error The bot's script failed. The text is the error it stopped with. Each alert shows the complete text in a box you can select, with a Copy button and a Dismiss button. Dismiss hides that exact message. It comes back after you reload the page, and a different message always shows.
Not every failure reaches this area. When a package can't even start, because it's missing, incompatible or has an error in one of its files, you only get a Couldn't start the behavior notification without a reason. The bot's Settings tab, under Package settings, then shows the reason. Package errors covers each error, and script authors will find more in Errors.
When the bot doesn't exist
If the bot was deleted, or Asteroboard can't reach the Asterobot it belongs to, the page says "This bot isn't registered (or was removed)." with "It may have been removed, or the server it lives on isn't reachable."
Where to go next
Console States and controls Lire cette page en français
  • 58 vues
Read what Asterobot says about a bot, what its script writes and the game chat as the game draws it, in one timeline you can filter, search, copy and write in.
The Console tab is where you follow a bot minute by minute. It puts three sources in one timeline, ordered by time: what Asterobot does with the bot, what the bot's script writes, and the game chat, drawn as the game draws it. Below the lines sits the game's chat box: its channel filter, the channel to write in, and the smiley window.
What the console shows
Source Lines Asterobot What Asterobot does with the bot: connecting, changes of state, errors. For example Relaying a game session when a MITM bot picks up your game. Script What the bot's script writes with botDebug(), botInfo(), botWarn() and botError(). Chat What the game prints in its chat: what players say in the channels your character is on, the private messages it receives and sends, the chat errors, the game's information lines, such as the experience it gains, the errors about items, such as a full inventory, what living items say, the game's calendar date, and the game's line when your character's status changes. Every line starts with the time of day, in your browser's time zone. Asterobot and script lines then show their level, DEBUG, INFO, WARN or ERROR, and their text.
Chat lines read as in the game, each in the colour of its channel:
A message shows the speaker's character name in bold, then what they said: Sender-Name: hello. A private message your character receives reads from Sender-Name: hello, and one it sends to Receiver-Name: hello. An item link shows as the item's name in brackets, such as [Snailmate]. The chat errors, the item errors and the information lines are the game's own, such as "You must be a subscriber." when a channel needs a subscription. A living item speaks in General, under its owner's name, and the game's date reads as in the game, the day, the month's name and the year, followed by the server's time in UTC. When your character's status changes, the game's own line shows in Information, such as "Away status activated.", whether the change comes from the status menu or from your game client on a relayed bot. As in the game, a status that doesn't change prints nothing. Once your character ignores a player, from a chat profile's trigger or from your game client on a relayed bot, that player's lines no longer show until the character leaves the game, as in the game. The lines already there stay, and a member of staff's always show. The game's words, the channels' names and the names in item links come from the bot's game version, in the bot's language. Hovering over a chat line shows its channel's name.
The panel holding the lines stays dark in Asteroboard's light theme too: the game's colours are made for its dark chat window.
A script can also write with asterobot:console. Those lines don't appear here: they go to Server > Console, without saying which bot wrote them. See Status and console, and, for script authors, Logging and debugging.
The colours
The colours are the game's default ones, which Asterobot reads from the game's own files when it extracts a game version: General in white, Trade in light brown, Guild in purple, private messages in blue, information lines in yellow, and so on. Lines from a member of the game's staff and the game's error lines are orange, as in the game. A colour you changed in the game's options doesn't show here.
If every chat line shows in the same colour, the game version was downloaded or extracted before Asterobot read the colours. Use Download more files in the version's menu, then extract it again: see Manage game versions and Extract the game data.
What's kept
Asterobot keeps the last 200 Asterobot and script lines of each bot, and its last 500 chat lines. When you open the tab, the console starts with those lines, then new ones arrive as they happen. Asterobot follows the chat from the moment the character enters the game, whether or not the console is open, and keeps it from one game session to the next. Both are kept in memory only, so they're gone after Asterobot restarts. Asteroboard shows up to 500 lines of each per bot while it stays open.
Channels and filters
Channels, at the far left of the chat box, is the game's chat filter. It lists the game's channels by their names in the game, followed by their shortcut, such as Trade (/b), each with a dot of its colour. The channels the game doesn't let your character use, such as the administrators' one, aren't listed, as in the game.
Warning
Like the game's own filter, ticking or unticking a channel changes it in the game: your character subscribes to it or unsubscribes from it, and the server starts or stops sending it that channel. The lines of an unticked channel disappear from the console. In MITM mode it's the same setting as your game's, and the game seems to keep it with your character from one session to the next.
The channels can only be changed while the bot is in a game, once the game has listed them as the character enters it: until then they're greyed out, and the console shows every chat line. If the change can't be sent, the alert Couldn't change the channels appears with the reason.
The second group of the list, Asterobot, holds Asterobot and Script. Unticking them only hides those lines in the console. When a script writes a lot, unticking Asterobot makes it easier to follow.
Filter, at the top, keeps the lines that contain what you type, ignoring upper and lower case. For a chat line, it looks at both the speaker and the message. The cross in the box clears it.
While anything is hidden, the top of the console shows how many lines you see out of how many, such as 12 of 340. When nothing matches, the console says "Nothing matches the filter." An empty console says "No log messages yet."
Copy
The copy button, Copy what's shown, copies the lines you see as text, one per line, such as 14:03:12 [info] Relaying a game session or 14:05:40 Sender-Name: hello. A notification confirms how many lines were copied.
Follow the newest lines
While you're at the bottom, the console scrolls down with each new line. Scroll up to read something, and it stops following so the lines don't move under your eyes. A Follow button then appears at the bottom right: click it to jump back to the newest line and follow again.
The dot next to the bot's name, at the top left, pulses green while Asteroboard is connected to Asterobot. If the connection drops and comes back while the tab is open, the console loads the kept lines again.
Write in the chat
The box at the bottom of the console writes in the game chat, as the game's own chat box does.
Warning
This really sends the message in the game, as your character: the players on that channel can read it.
Pick a channel with the channel button, between Channels and the box. It lists the channels you can write in, each with its colour, General first. Type your message in "Write in General...". Press Enter, or click the send button. The rules are the game's:
Shortcuts. A message that starts with a channel's shortcut and a space goes to that channel, for that message only: /b selling wheat goes to Trade. The channel button shows that channel while you type. The shortcuts are the game's, such as /s General, /b Trade, /r Recruitment, /g Guild, /p Group, /a Alliance and /w Private. Private messages. On the Private channel, the first word is who to send it to: Receiver-Name hello. From any channel, /w Receiver-Name hello does the same. Clicking a character's name in a chat line starts one: it writes /w Their-Name in the box. Spaces. Line breaks and repeated spaces become single spaces. Length. The box takes 256 characters, as the game's does. Other commands that start with a /, such as /ping, are run by the game itself, and the console doesn't run them: it says so instead of sending them.
Your message goes through the bot's chat guard, the queue every message the bot says goes through, its scripts' included. Yours go before the others, and only the game's cooldown on a channel holds them back. When the game answers that a channel is restricted ("You will be able to post again in 37 seconds"), the guard waits exactly that long and sends your message once more. It then appears in the chat by itself, and a console line says the wait. The bot's Chat tab shows where the guard stands, and its Stop sending button holds back every line but yours and the alarms' (The chat module).
The box empties once the message waits its turn. The character must be in the game. If the message can't be sent, the alert Couldn't send the message appears above the lines with the reason, such as chat: the character isn't in the game. If the game refuses it, for example in the Guild channel without a guild, its error shows in the chat, as in the game.
The lines the bot says on its own, from its chat module or its scripts, show in the chat the same way, once the server says them back. A dry run writes them as Asterobot lines instead, such as Dry run: would say in Trade: Selling wheat, whisper me!. The module's own console lines say the rest of what it does, such as Trigger wtb: Buyer in Trade: wtb wheat.
Play a smiley or an emote
The smiley button, Emotes and Emoticons, between the chat box and the send button, opens the game's smiley window. Click a smiley or an emote and your character plays it, as in the game.
Warning
This really plays it in the game: the players around your character see it.
Smilies shows the smileys of every pack your character has, each under its pack's name, the Generic pack first. Click one to show it above your character. Emotes lists the emotes your character knows, by name. Search keeps those whose name contains what you type, ignoring upper and lower case and accents. Click one to play it. You can't click it again until its cooldown, from the game data, has passed: 60 seconds for Protection, for example. The names and pictures come from the bot's game version, in the bot's language. Asterobot follows the emotes your character learns or loses and the smiley packs it gets, so the window stays up to date while it plays.
The button only works while the bot is connected to a game. Right after the character enters the game, Emotes can say "The game hasn't listed this character's emotes yet." for a moment. If a smiley or an emote can't be sent, the same Couldn't send the message alert appears.
If the smileys and emotes show as plain icons instead of their pictures, the game version was downloaded or extracted before Asterobot needed those pictures. Use Download more files in the version's menu, then extract it again: see Manage game versions and Extract the game data.
Where to go next
Information Network traffic Lire cette page en français
  • 59 vues
The Ankama account details and the game server a bot's session reports once the bot is connected.
The Information tab shows what the bot's game session says about the Ankama account and about the server it's on. It fills in once the bot has signed in: after Connect for a Full socket bot, or once your Dofus client has joined a MITM bot.
Before that, the tab only has a short text pointing you to the Connect button in the header. Disconnect empties it again. When a later connection attempt fails, the tab keeps showing the last session until the next successful connection or Disconnect.
Login session
The Login session card lists the account as Ankama reports it:
Row What it shows Account ID The Ankama account's number. Nickname The account's nickname. Tag The tag that goes with the nickname. Subscription ends When the account's Dofus subscription ends, exactly as Ankama sends it: a date and time in the ISO 8601 format. Under the rows, badges show the rights Ankama gives the account, when it gives any:
Badge Meaning Show account override A right Ankama sets on the account, shown as received. Show console A right Ankama sets on the account, shown as received. Unlimited access The account can join a server even when that server is in maintenance or not open to it. Infinite subscription The account's subscription doesn't end. Subscription ends means nothing then. Current server
Under Current server, a tile shows the server the bot's session is on: its picture, its name and number, its status (Online or Maintenance) as it was when the bot signed in, its server type, Mono-account for a mono-account server, and how many characters the account has there. The information icon next to the name shows the server's description.
Server names, pictures and descriptions come from the game data of the bot's game version, in the bot's language. When that game data can't be read, the tile shows the server's number, such as #312, instead of its name.
When a bot waits for you to choose a server, the choice isn't made here: the Pick a server card appears in the header, on every tab. See Bot page.
Where to go next
Inventory Full socket mode Lire cette page en français
  • 58 vues
Follow your character's items, kamas and pods live, browse them by category, read their effects and destroy items from Asteroboard.
The Inventory tab shows what the bot's character carries: its items, its kamas and its pods, kept up to date while the bot plays. It works the same for a Full socket bot and for a MITM bot following the game you play.
Turn on live inventory
Nothing reaches the tab until you ask for it.
On the bot's page, click Inventory. The tab says "Inventory not followed". Click Turn on live inventory, or turn on the Live inventory switch at the top right. The switch ticks eight messages in the Network tool's Settings: InventoryContentEvent, ObjectAddedEvent, ObjectDeletedEvent, ObjectMovementEvent, ObjectsQuantityEvent, ObjectQuantityEvent, KamasUpdateEvent and InventoryWeightEvent. It only shows as on while all eight are ticked, and turning it on ticks any that are missing. The choice is saved with the bot and stays after a restart. If the change fails, Couldn't turn live inventory on or off appears with the reason.
Like every message selection, it only changes what Asteroboard shows. A script receives these messages either way.
Why it waits
After you turn it on, the tab can say "Waiting for the inventory". The game sends the full inventory only once, when the character enters the game, and Asterobot keeps no copy of it. The tab fills in the next time the character enters the game: on a MITM bot, go back to character selection in Dofus and choose your character again; on a Full socket bot, reconnect it. To avoid waiting next time, leave Live inventory on.
The summary
The line at the top of the tab shows:
The kamas the character carries. A pods bar with the weight and the maximum, such as 1,250 / 3,000 pods. The bar turns orange from 90% of the maximum, and red with an Overloaded badge once the character carries more than it can. Last known inventory, bot not connected when the bot isn't Connected to game server: what you see is the last inventory received, not a live one. "Updated" followed by the time of the last change. Hover it to see when the full inventory was received. What stays live, and what doesn't
Everything changes as you play: quantities, kamas and pods, an item you loot, buy, harvest or craft, a stack used up or sold, and the items you equip or take off.
Asteroboard keeps the last inventory of each bot while it's open. Reloading or closing Asteroboard empties the tab until the character enters the game again. When you delete a bot, its inventory goes with it.
Categories
Under the summary, a strip of categories filters the table: All, then Equipment, Consumables, Resources, Quest items, Cosmetic Items and Miscellaneous. Each shows how many stacks it holds, and only categories with something in them appear. An item the game data doesn't know has no category and only shows under All.
The item table
Column What it shows Item The item's picture and name, a star for items marked favourite, and an Equipped badge for items the character wears. Type The item's type. On a narrow screen it moves under the name. Level The item's level. Quantity How many the stack holds. Weight The pods of the whole stack. Hidden on a narrow screen. Click a column heading to sort by it. The Columns menu hides or shows Type, Level, Quantity and Weight. The table shows 25 stacks per page.
The search box, "Search names, types, effects...", looks for your text in the item's name, type, description and effects, and in its ids. While you search, it shows how many stacks match out of how many. With no match it says "No item matches the search.", and an empty category says "Nothing in this category."
Item details
Rows with a description or effects have an arrow at their start. Click it to open the row:
The item's description. The effects of this very stack, with the values the game rolled for it, in green for bonuses and in red for penalties. An effect Asteroboard can't put into words is shown in its raw form, in grey. The stack's uid, the item's id (item) and its position, with Open in game data, which opens the item's record on the Game page. Right-clicking a row opens a menu with Show details or Hide details, Copy UID, Copy item ID, Open in game data when the game data knows the item, and Destroy.
Names and pictures
Names, types, descriptions and effects come from the game data of the bot's game version. Their language is the one chosen on the Game page's Language selector, or Asteroboard's own language when you never chose one there. See Game page.
An item the game data doesn't know shows as Item # followed by its id, in grey. When the game data can't be read at all, for example because the version isn't extracted, Item names unavailable appears with the reason, and the stacks are still listed by id. A game version extracted before item pictures were part of the extraction shows a box instead of each picture.
Destroy an item
Warning
Destroying sends the game's own delete request, as your character. The game destroys the items for good, and nothing can bring them back.
Right-click the item's row and choose Destroy. It's greyed out with "Needs a connected bot" while the bot isn't connected, and with "Destroy sent" when you already sent a destroy for that stack. The dialog Destroy followed by the item's name opens: "The game destroys it for good. This can't be undone." For a stack of more than one, choose the Quantity. It starts at the whole stack, and can't go above what the stack holds. Click Destroy. A notification such as Destroy sent: 3 × Wheat confirms the request left. The row stays in the table, dimmed, with a Destroy sent badge, or Destroy sent ×3 when you destroyed part of the stack.
The request leaving doesn't mean the game accepted it. When only part of a stack was destroyed, the quantity update from the game settles it, and a whole stack leaves the table once the game says it's gone.
If the request can't be sent, Couldn't send the destroy request appears in the dialog with the reason. When the bot isn't connected, the dialog says "This bot isn't connected to the game, so nothing can be destroyed right now."
Where to go next
Network traffic The tutorial Inventory watcher builds a script on the same messages. Lire cette page en français
  • 61 vues
Choose which of a bot's game messages Asteroboard shows, then watch them pass in the Traffic panel, read their fields and search them.
The Network tool shows the messages going between a bot and the game: what the server sends, and what the bot or your Dofus client sends back. Open it from the bot's Tools tab. It has three panels: Traffic lists the messages, Settings chooses which ones, and Send a game message sends one by hand, which Send messages by hand covers.
Why Traffic starts empty
A bot exchanges a lot of messages. Asterobot sends none of them to Asteroboard until you choose which ones you want, so on a new bot Traffic says "No message mirrored yet. Pick some in Settings."
What you choose only changes what Asteroboard shows. The bot's script receives every message either way, and the game plays the same.
Live inventory on the Inventory tab is a shortcut: it ticks messages in the same list.
Choose the messages
The Settings panel holds every message Asterobot can name, with a box to tick for each.
Caution
On a MITM bot, where the bot relays the game session of your Dofus client (man-in-the-middle), ticking IdentificationRequest shows the first message your client sends. It contains the ticket that opens your game session. Never share a screenshot or a copy of that message.
On the bot's page, click Tools, then Settings in the Network tool. Type part of a message name in Filter messages... to narrow the list. Tick the messages you want. The Select the button, which shows how many messages the filter lets through (such as Select the 12 shown), ticks all of them, and Deselect the shown unticks them. Click Apply. The button shows how many messages are ticked, such as Apply (3). A notification confirms how many message types the bot now mirrors, and the line next to the button shows how many are selected out of how many exist. Apply stays greyed out while nothing has changed, and Revert, which appears as soon as you change something, puts the list back as it was last applied.
The selection belongs to the bot. It's saved with it, stays after Asterobot restarts, and is the same in every browser that opens this bot. After a game update, messages that Asterobot no longer knows by name are removed from the selection the next time Asterobot starts.
When the list can't be loaded, or Apply fails, the alert Couldn't load the message catalog appears with the reason, such as unknown game protocol message names: [...] for names Asterobot doesn't know.
Also mirror unrecovered messages
Some messages have no name Asterobot knows yet, so they can't be ticked one by one. The Also mirror unrecovered messages switch covers all of them at once: "They arrive under their obfuscated name, decoded from the schema when it describes them." Apply it like the list. Expect many of them.
Dropped messages
When messages come faster than Asterobot can pass them on to Asteroboard, it skips some rather than slow the bot down. A badge next to Apply then shows how many, such as "12 message(s) dropped - the stream couldn't keep up". The count covers this bot since Asterobot started, and nothing is lost for the bot or its script. If it keeps growing, tick fewer messages.
Watch the messages
Open Traffic. The messages you chose appear as they pass, the oldest at the top.
Each row shows, from left to right:
Part Meaning Colored bar and icon The kind of message: green for an event the server announces, red for a request, blue for a response to a request, grey when the kind is unknown. Time When the bot's connection saw the message, in UTC, down to the millisecond. Name The message's name. A message without a known name shows its obfuscated name in italics. Schema or Raw Only for messages without a known name. Schema: its fields could still be read, under obfuscated names. Raw: nothing could be read but its bytes. In or Out In comes from the game server. Out goes to it, from the bot or from your Dofus client. # and a number The message's sequence number on this connection. uid and a number Shown for requests and responses, to match an answer with its request. Decode error Asterobot couldn't fully read the message. Under that, a one-line preview of the message's content. Click a row, or the arrow at its start, to open it: you get all its fields as JSON, the decode error if there's one, and for a message nothing could read, its raw bytes. Fields with a default value are shown too, and large numbers appear as text in quotes. The Dofus protocol reference explains what the fields mean.
Named requests and events also have a paper plane button, Send this message again. It's meant to copy the message into Send a game message, but in this version that panel opens without it: open Send a game message, choose the same message and copy its fields from here.
Follow, pause and clear
While you're at the bottom, the list scrolls with each new message. Scroll up and it stops; the Follow button takes you back to the newest message. Pause freezes the list for this bot. Messages that arrive while it's on are not kept, even though the notice says "Paused - new messages are still recorded.": they don't show up when you turn it off. Chat lines on the Console tab stop too. Clear empties the list for this bot, including the chat lines on the Console tab. What's kept
Asteroboard collects the messages as soon as it opens, whichever page you're on, and keeps about the last 2,000 per bot. They're lost when you reload or close Asteroboard: Asterobot keeps no history of them.
On a MITM bot, the relay of your game can also skip messages when it can't pass them on fast enough. Your game isn't affected, but a badge above the list then says how many messages the bot's session discarded and that the list is incomplete.
Search
The box "Search, or filter with name:Ping direction:inbound" filters the list as you type. The count next to it shows how many messages match out of how many.
Separate words with spaces: a message must match all of them. Case doesn't matter, and part of a word is enough. field:value looks in one field only: name, wirename, kind, direction, bot, uid, sequence, error or payload. The kinds are event, request, response and unspecified, the directions inbound and outbound. A - in front of a word or a field:value excludes what matches it. A number alone finds it in any field, such as a character's id, without knowing which field holds it. Search Shows Chat Every message with "chat" anywhere in it. name:ChatChannelMessageEvent Only that message. kind:request The requests. direction:inbound -kind:event What the server sent, except events. When nothing matches, the list says "No message matches this search."
To go further with messages, script authors can read Finding messages and Traffic.
Where to go next
Send messages by hand The tutorial See what your game sends Lire cette page en français
  • 76 vues
Build one game message in the Network tool and send it to the game server as your character, or to your Dofus client as if the server had sent it.
The Send a game message panel of the Network tool builds one message from its fields and sends it on the bot's game connection, the same way a script's send() does. Use it to test: see how the server answers a request, or try a message before a script sends it.
Before you send
Caution
A message sent to the server comes from your character, exactly as if your Dofus client had sent it, and the server acts on it. A wrong message can move your character, spend kamas or destroy items, and there's no undo.
The bot must be Connected to game server. Only messages Asterobot can name can be sent.
Send a message
On the bot's page, click Tools, then Send a game message in the Network tool. Under Direction, keep To the server or choose To the client. See the table below. Pick the message from the list, "Pick a request to send..." or "Pick an event to inject...". Type to search in it. Fill in the fields you need, and leave the others empty. Check the JSON under "This is what will be sent." Click Send followed by the message's name. A notification with the message's name followed by "sent" confirms it went out. The panel shows no answer: to see how the server reacts, tick the messages you expect in Settings and watch Traffic. See Network traffic.
Direction
Direction Messages offered What happens To the server Requests, whose names end in Request "Goes to Ankama as a request, exactly as the real client would have sent it." To the client Events, whose names end in Event The message is delivered as if the server had sent it. On a MITM bot, your Dofus client receives it and acts on it. On a Full socket bot there's no client: only the bot's own script receives it. Changing the direction empties the message you picked, since the two lists have no message in common. Responses can't be sent at all: a response answers one precise request.
Fields
When you pick a message, its fields appear, each labelled with its name and, under it, its type, such as int32, string · optional or message · repeated followed by the type of message it holds.
Field type Field in the panel What to enter bool A checkbox Tick it for true. A list of named values A dropdown One of the names. int32, uint32, sint32, fixed32, sfixed32, float, double A number box A number. int64 and the other 64-bit numbers A text box A whole number. It's kept as text so that large ids aren't rounded. string, bytes and other single values A text box The value. Lists, and fields that hold another message A JSON box, starting with [] or {} JSON. An empty field is left out of the message, and so is an unticked checkbox: the game then uses the field's default value. A message without fields says "This message has no fields to fill in."
When a value can't be used, the preview is replaced by the reason in red, and the send button stays greyed out:
Reason, for example What to fix mapId: abc is not a number Type a number in that field. characterId: 12.5 is not a whole number Type a whole number in that 64-bit field. The field's name followed by a JSON error from your browser Fix the JSON in that field. The Dofus protocol reference describes each message and its fields. Script authors can also read Finding messages and Sending.
When sending fails
The alert Couldn't send the message appears above the form with the reason:
Reason What it means bot has no game connection: "<bot>" The bot isn't connected to a game. Connect it and try again. Starts with message could not be built from the given payload: A value doesn't fit the message: a wrong type, an unknown value in a list, JSON of the wrong shape. The rest of the text says which. Starts with unknown game protocol message names: Asterobot doesn't know this message, for example after a game update. Starts with send, the message's name, and to server: or to client: The message couldn't be written on the connection, often because the connection closed a moment before. Starts with the game engine is not available: Asterobot couldn't load its list of game messages. The chat box of the Console tab and Destroy on the Inventory tab send their messages the same way, and fail with the same reasons.
Where to go next
Network traffic Map Lire cette page en français
  • 57 vues

Map

Follow a bot's character live on its map, walk it to a cell, take it to the next map by a side or through an exit, use doors, zaaps and resources, and travel to any map, on Full socket and MITM bots.
The Map tab of a bot page shows the map the bot's character is on, live: where the character stands, who is around and what can be used. From it you can walk the character, take it to the next map by one of the four sides, go through an exit, and use the doors, zaaps, resources and workshops of the map. It works the same for a Full socket bot and for a MITM bot (man-in-the-middle: the bot follows the game you play in Dofus).
Turn on the live map
Nothing reaches the tab until you ask for it.
On the bot's page, click Map. The tab says "This bot's map isn't followed". Click Follow the map, or turn on the Live map switch at the top right. The switch ticks the 20 map and fight messages in the Network tool's Settings, such as MapCurrentEvent, MapComplementaryInformationEvent, MapMovementEvent, InteractiveMapUpdateEvent and GameActionFightEvent. It only shows as on while all of them are ticked, and turning it on ticks any that are missing. Map under the bot's Live data settings is the same switch. The choice is saved with the bot and stays after a restart. If the change fails, "Couldn't change what this bot sends" appears with the reason.
Like every message selection, it only changes what Asteroboard shows. A script receives these messages either way.
After you turn it on, the tab can say "Waiting for a map". The position appears when the character changes map or takes a step.
The header
Item What it shows Following the bot, or Back to the bot Whether the map on screen is the bot's. Back to the bot brings it back (Following the bot). Coordinates, such as [4,-19] Where the bot's map is on the world map, when it's on one. Map, such as "Map 154010882" The bot's map. Cell, such as "Cell 300", or Cell unknown The cell the character stands on. Cell unknown means Asteroboard doesn't know yet which actor is your character: it finds out at its first step, or from its selection when Character is on in the bot's Live data settings. Last known position, bot not connected The bot isn't connected: you see where it was last. "Updated" and a time When the last map message arrived. Live map The switch above. Following the bot
The tab shows the world map and the bot's map, side by side at first. World, Map and Split at the top switch between the world map alone, the map alone and both. Your choice is remembered in this browser.
While the header says Following the bot, the map on screen goes wherever the bot goes. Opening another map pauses following: an arrow on the side of the map, an exit, a click on the world map or a map ID typed in the field. The header then offers Back to the bot, and arriving back on the bot's map any other way starts following again. The world map keeps a pin on the bot's square wherever you're looking.
The arrows on the sides of the map, and the exits listed above it, only open other maps on screen. They don't move the character. On the bot's own map, each arrow has a second button beside it, with a walking figure, that does move the character: see Leave the map by a side. The right-click menu and the double-click described below move it too.
The map is drawn exactly as on the Game page: its views, layers, exits and cell details are described in Map viewer.
What the map shows
On the bot's map only:
The character and every other actor the game placed on the map, drawn on their cells, walking as they walk. A square on each resource the game reported: green while something can be done with it, grey until it can again. Click a cell to select it. Selecting an actor or a resource in the lists below the map selects its cell too.
During a fight
When the character's fight starts, the map is the fight's. It has no place in the world, so the world map shows no pin for the bot until the fight ends. Every fighter stands on its cell with its life, such as 340/415, beside your character's name for yours. They move as they walk, get pushed or swap places, and a fighter that dies leaves the map. Once the fight is over, the map follows the character back into the world.
On this map
The list of who is on the bot's map: You first, then players ("Player" and their id) and monsters or NPCs ("Monster or NPC" and their id), each with their cell. Click one to show it on the map. It's filled in when the character enters a map, then kept current as actors come, move and leave. "No one seen on this map yet." means the game hasn't described anyone since the live map was turned on.
Resources and objects
The list of the map's interactive elements: resources, doors, zaaps, workshops and the exits drawn as a sun. At the top, how many are available out of how many. Each row shows:
the element's name from the game data, or "Element" and its id; Available when it offers something right now, Unavailable when it doesn't, or its state when the game only reports that; what it offers, and struck through what it refuses for now, such as a harvested field; a harvest bonus such as "+20%", for resources that regrew a while ago; who used it last and when, such as "Used by you at 14:02:11"; its cell, when the game gave one. Click the row to show it on the map; a button for each action it offers now, which uses it (Use an element). An exit's button is Take this exit. Move the character
The character can be moved once the bot is connected and the character is placed on its map. The double-click, the right-click menu and the walking buttons on the sides of the map work while the bot's map is on screen; the buttons of Resources and objects always act on the bot's map, even while you look at another one. Each time, Asterobot does what the game client does when you click: it walks the character first, then does the rest.
The bot does one movement at a time, whoever asks: you, or a script running on the bot. While a movement you asked for is under way, the controls are greyed out. A movement asked while another one is under way, from Asteroboard or from a script, is refused.
Walk to a cell
Double-click a cell, or right-click it and choose Walk here. The character walks there, around the other actors, the way the game would. When the cell can't be reached, it walks to the closest cell it can, and "Walked to the closest cell" tells you which one.
Leave the map by a side
Click the walking button beside the arrow of that side, on the bot's map. The arrow itself only opens the map beyond on screen. The character walks to the exit of that side it reaches soonest, and the bot moves to the next map. The tab follows it there as soon as the new map has arrived.
Not every cell of an edge is an exit: only the cells the map lets you leave from. When a side has no exit, or none the character can walk to, the map change fails and says so.
Choose the exit cell
On some maps, the same side leads to different maps depending on where you leave it: the top of the right side to one map, the bottom of the right side to another. Frigost's ice bridges and Astrub's cliffs are examples. To choose, leave from the cell you want:
Right-click an exit cell of that side. In the Exits view of the map, exit cells are coloured as Exit. Choose Leave by the right (or the top, the bottom, the left). The menu only offers the sides that cell is an exit of. To know which cells lead where, look at the exits listed above the map: on such a map, the exits of one side have a condition. Point at one to read "Requires:" and its condition, such as #(PC=447|PC=475|PC=503|PC=531|PC=517|PC=489|PC=461|PC=433). PC is the cell the character stands on: this exit is the one taken from those cells, here the bottom of the right edge.
Go through an exit
Some exits are a cell inside the map, drawn as a sun in the game. Right-click its cell and choose Take this exit, or click Take this exit on its row of Resources and objects. The character walks onto the cell, and the game moves it to the next map, as when you walk onto a sun in Dofus.
Use an element
Right-click the cell of an element and choose one of its actions, shown as "Use:" followed by the action's name, or click the action's button on its row of Resources and objects. The character walks within reach of the element first (next to it for most), then uses it.
The list is the place to use doors and zaaps from: many of them cover an area rather than one cell, so their actions don't show in the right-click menu. Only the actions the element offers right now are offered, and the game decides whether it accepts the use.
Note
Coming soon. Using a zaap opens its destinations in the game, but choosing one of them isn't possible from Asteroboard yet. Neither is choosing which instance of a house a house door leads to.
When it can't move
When the character can't be moved, the controls are greyed out and their tooltip says why:
Reason What to do "The bot isn't connected." Connect the bot. "The bot's map isn't known yet." Turn on the live map and wait for the character to change map or take a step. "Your character isn't placed on this map yet: it is once identified, at its first step or from its selection when Character data is followed." Walk once in the game, or turn on Character in the bot's Live data settings before the character is selected. "Map 154010113 exists, but nothing leads there from here" Only on a side's walking button: the game's travel graph has no way from this map to the one beyond that side. Leave by another side. "Wait until your character has finished walking." Wait for the walk to end. This one appears as a notification, "Can't walk there right now". When Asterobot couldn't do it, a notification says what failed, The walk failed, The map change failed or The use failed, followed by Asterobot's reason. The most common ones:
Reason What it means move: the character is already moving; await the walk, map change or use in progress first A walk, map change or use is already under way, maybe from a script. move: no exit leads off that side of the map That side has no exit cell. move: no exit of that side can be walked to from here (cell 300) The exits of that side are out of reach, for example on the other side of a river. move: the server refused the walk The game refused the walk. move: the element offers several actions; name the one to use: skills 114, 44 Pick one of the element's actions in the list rather than the element. move: the server refused the use (element 489333) The game refused the use: too far, already in use, or not possible for this character. move: the character is still using an element A use with a duration, such as a harvest, isn't over yet. move: the server didn't change map in time; the character is still on map 154010882 The game didn't move the character. Try again. move: the server refused the map change; the character is still on map 154010882 The game refused to let the character leave from that cell. Try another exit. "The game finds no way to that cell." is the walk's own message when the game has no route at all.
Full socket and MITM bots
On a MITM bot, your Dofus client shows the character walking and loading the next map, as if you had clicked. Don't click in the game at the same time: your own walk replaces the bot's, and the bot's ends with move: another walk of the character started before this one ended.
On a Full socket bot, Asterobot does what a game client would: it finishes each walk at the right moment, and after a map change it waits for the new map. The bot's connection script asks the game for the new map, as it does for every map. When no script does, for example on a bot whose script was stopped, Asterobot asks for it itself, so a map change completes either way, and the game is asked only once. A Full socket bot still needs its connection script to enter the game in the first place. See Full socket mode.
Travel to another map
The Travel card, under the map, takes the character to any map, however far, map after map: through the sides of the maps, stairs, suns, doors and ladders, along the travel map the game itself uses for the mount's autopilot.
Choose the destination: open it on the world map or the map, which fills in Map id, or type its id. A click on a square of the world map lists the maps there; the route button beside one fills in Map id and shows the way there at once. A right-click on the square offers the same, as a menu. If you like, choose what to do with Steps with a condition: Only when there's no other way (the default), Whenever they save time, or Never. A step with a condition needs something Asterobot can't always check, such as a quest, an item or a level; the game decides. Click Show the way to see the steps first, each with the map it leads to and about how long it takes. The world map shows a dot on every map of the way, and the bot's map shows where the next step leaves. Click Travel. To go straight to the map on screen, click Travel to map beside Back to the bot in the header, while you browse another map. The trip starts at once, with the card's choice for Steps with a condition.
While the bot travels, the card shows the step under way, about how long is left, and the steps the game refused. Stop ends the trip once the step under way is over, so the character never stops in the middle of a map change. A trip a script started shows the same way, and stops the same way.
When the game refuses a step, such as a locked door or an exit out of reach, the trip finds another way. When the character lands somewhere unexpected, it plans again from there, and a fight on the way is waited out. When nothing leads there, No way found says so, with Asterobot's reason, such as travel: no known way there (map 153879813 to map 191105026).
Note
Coming soon. Trips don't use zaaps, zaapis, the haven bag or potions yet. A bot inside a house leaves it first, by its door.
Trips don't use NPC transports, such as statues and boats: the game doesn't say where they lead. A place reached only by one has no way there.
Where to go next
Map viewer, for the map's views, layers and exits World map Network traffic, to see the messages behind each movement Bot page Lire cette page en français
  • 70 vues
Open the page of a downloaded game version, find your way around its tabs, and use its Information tab.
Every downloaded Dofus version has a page of its own in Asteroboard. From there you explore what Asterobot downloaded and extracted for it: the world map and each map, the game data, the game texts and the music. None of it needs a bot. The first tab, Information, also gathers every action on the version in one place.
Open it
Open Game Manager. On the version's row, click the game's name or Inspect. Both only appear on Dofus versions for Windows whose Status is Installed. Versions of other games or platforms have no Game page.
The page's address names the version and the tab you're on, so you can bookmark a tab or keep its link. When a link names a version your Asterobot doesn't have, the page offers to download it (see A version that isn't installed).
The header and the tabs
The header shows the game's icon and name, and the version number. On the Text, Maps and Game data tabs, a Language selector on the right sets the language of game texts and names: Français, English, Deutsch, Español or Português. It starts on the language Asteroboard is in. Your choice is remembered in this browser, for every Game page.
Tab What it's for Information The version's statuses and every action on it, described below. Text Statistics on the game's text file of a language, and the lookup of one text. See Game texts. Maps The world map and the map viewer. See World map and Map viewer. Game data Search, browse and query the game data. See Game data and SQL. Music Download, extract and play the game's music. See Music. Maps and Game data read the extracted game data, so they have nothing to show until the version is extracted (Extract game data). Text reads the downloaded text files directly.
If a tab runs into an error while it's displayed, it's replaced by Couldn't load this panel with the error's text. Switch to another tab and back, or reload the page.
The Information tab
Statuses
The first row repeats what Game Manager shows for the version, with two buttons:
The download Status, such as Installed, with a progress bar while downloading or verifying, and an info icon with the reason when it's Failed. Ready for bot or Not ready, followed by Check if ready for bot, which checks again on disk. Compatible or Different version, only for the environment dofus3, followed by Check for latest version, which asks Ankama's download servers whether a newer version is out. Required files
This card tells whether the files a bot needs are on disk, for every language at once:
Badge Meaning Present Every file a bot needs is downloaded. Missing At least one is missing, and Download needed files appears next to the badge. Unknown Asteroboard couldn't ask Asterobot. Download needed files downloads only the missing files, in the same queue as other downloads, and Asteroboard shows Download queued. It doesn't start an extraction: once the download is done, extract the version if it isn't Extracted yet.
At the bottom of the card, Verify files, Download more files (Retry on a failed version) and Uninstall work as in the version's menu in Game Manager (Manage game versions). Point at a button to read what it does.
Extracted data
This card shows the extraction status, with a progress bar while it runs, and two buttons: Extract data, which reads Re-extract data once the version is extracted, and Remove extracted data. Extract game data explains both.
Delete
Delete, at the bottom of the tab, removes the version's files, its extracted game data and its row, once you confirm. Manage game versions compares it with Uninstall.
A version that isn't installed
When the page's version isn't in Game Manager, for example after you deleted it, the tabs make way for a card saying the version isn't installed, such as Dofus 3.6.11.13 isn't installed.
Download this version downloads the files a bot needs for that version and extracts them once the download finishes, as long as Asteroboard stays open. The version then appears in Game Manager and the tabs come back. If the download can't be queued, Asteroboard shows Couldn't queue the download.
Where to go next
World map Game data Find a resource on the world map Lire cette page en français
  • 58 vues
Browse Dofus's world maps from a game version's Maps tab, search for monsters, resources and places, read a region's details and open its maps.
The Maps tab of a Game page draws Dofus's world maps from the game version's extracted game data, with regions, zaaps, dungeons and points of interest on top. It's where you look up where a monster lives or where a resource grows, before opening the maps of that region. The version must be extracted first (Extract game data).
Open the world map
Open the version's Game page from Game Manager. Open the Maps tab. The tab opens on the World view. Three buttons at the top switch views:
View What it shows World The world map, with the region panel under it. Map One map, in the map viewer. Split Both side by side. The world map gets less room and the region panel is hidden. In Split, drag the line between the two sides to share the room: Asteroboard remembers the position in this browser. The Follow the map switch keeps the world map centred on the map open beside it. On a narrow screen, the two sides stack.
Move around
Drag the map to move it, and turn the mouse wheel to zoom. The buttons at the top right zoom out, zoom in, go back to the whole map, and switch to fullscreen. The top left corner shows the coordinates under the pointer, with the name of the region or point of interest there. When the pointer is off the map, it reads "Click a square to open the maps there." Click a square to select it. The line under the map then lists the IDs of the maps at those coordinates, up to 50, as buttons: click one to open that map. The line reads "Looking up..." while it searches, and "No map at these coordinates." when there's none.
Double-click a square to open the first map there right away.
Choose a world map
The list at the top left holds the world maps shown in the game, and starts on world map 1, the World of Twelve. A world map with no name shows as "World map" followed by its number. When you open a map in the Map view, the world map switches to the one that map belongs to.
If the chosen world map shows "This world map has no artwork extracted.", extract the version again. When the world maps can't be read at all, for example on a version that isn't extracted, the tab shows Couldn't load the world map with the reason.
Switches
Switch At first What it draws Outlines On The borders of the regions. Points of interest On The icons the game places on its map. Under the map, one button per category, with its count, hides or shows that category. Grid Off The squares of the coordinates. Zaaps Off Every zaap, with its name. Dungeons Off Every dungeon, with its name. Level heat map Off The regions, coloured by level. The number of connections, such as 4 connection(s) Off Where the routes of the map open in the Map view lead: blue squares for the ones you walk, orange diamonds for doors, stairs and other routes you take through something on the map. Only offered while an open map has such routes. With Level heat map on, a legend under the map reads "Low level to high level" with five bands: 1-20, 21-50, 51-100, 101-150 and 151+. Regions without an outline or without a level stay uncoloured, and the legend says how many.
The switches go back to these defaults when you reload the page.
Search
The search box, "Search for a monster, resource, item...", understands three kinds of input:
Coordinates, such as 4,-19, 4;-19 or 4 -19. A map ID. A number is offered as a map ID, and searched as a name too. A name: of a region, a dungeon, a point of interest, a monster or an item, in the Language chosen in the Game page's header. Each word matches the start of a word. Results appear as buttons while you type, up to 6 for each kind of record. Each shows the name, the level range for a monster, the table the record comes from and its number after #. Names aren't unique, and the number tells records with the same name apart. The small button next to a result, "Open in game data", opens its record on the Game data tab.
Clicking a result What happens Coordinates The world map centres on that square and selects it. Map ID The map opens in the Map view. Region The world map centres on the region. When the region isn't drawn on this world map, its first map opens instead. Dungeon Its entrance map opens. Point of interest The map it stands on opens. Monster or item The world map highlights the regions where it appears. Filter by monster or item
Picking a monster highlights the regions where it lives. Picking an item highlights the regions where it's gathered, and the regions where monsters that drop it live.
A button then appears above the map, with the name and the number of regions highlighted on this world map, such as "Bouftou Royal · 3 region(s)". Click it to remove the filter. When the record appears nowhere, the button reads the name followed by "appears on no region here".
Some regions can't be highlighted, because they're on another world map or have no outline. They're listed after "Also in:", and clicking one shows it in the region panel.
The game data records monsters and resources per region, not per map or per cell, so the filter can't show the exact spot where a resource grows.
The region panel
In the World view, the region panel under the map describes the region of the selected square, or the region you picked after "Also in:".
The region's name, and badges: Level, the number of maps, and Dungeon, Capturable or Conquest village when they apply. Zaap, when the region has one, opens the zaap's map. That zaap can stand outside the region it serves. A button such as Open the 12 map(s) opens the region's first map. Monsters, with their count: each monster with its level range and its number. A monster in a warning colour is aggressive from further than 3 cells. Pointing at a monster shows "Aggressive within" with its range in cells, or Passive. Harvestables, with their count: each resource with its level and its number. Pointing at one shows "Gathered with" and the job. The note "Gathered on the maps of this area." is a reminder that the game data doesn't say which map. Drops, with their count: the items the region's monsters drop. Every monster, resource and item in the panel links to its record on the Game data tab. The panel shows "Loading the area..." while it loads, and Couldn't load this area with the reason when it fails.
Open a map
Each of these opens a map in the Map view, or beside the world map in Split:
double-click a square; select a square, then click one of the map IDs under the world map; click Zaap or the button that opens the region's maps in the region panel; in the search, click a map ID, a region, a dungeon or a point of interest. In the Map view, a button such as "Show at [4, -19] on the world map" goes back to the world map, centred on the open map. It's hidden while Follow the map is on. Map viewer explains everything the Map view shows.
Where to go next
Map viewer Find a resource on the world map Lire cette page en français
  • 86 vues
Open one map by its ID or coordinates, read what it allows and where its exits lead, inspect its cells, choose what it shows and save it as a picture.
The map viewer draws one map from a game version's extracted game data: the same cells a bot walks on. It shows what each cell allows, where the exits are and where they lead, and it lets you walk from map to map. It's the Map view of the Maps tab on a Game page, and the world map opens it too (World map).
Open a map
On the Maps tab of the Game page, click Map at the top. In Map ID, type a map ID, such as 39845888, or in-game coordinates, such as 4,-19. Coordinates can also be written 4 -19 or 4;-19. Click Show, or press Enter. Until you open a map, the frame says "Enter a map ID to display it." Show stays greyed out while the field holds neither an ID nor coordinates.
Several maps often share the same coordinates, such as an outdoor map and the buildings that open off it. The viewer opens the first one and lists the others (Other maps at the same coordinates). When no map has the coordinates you typed, it says "No map at" followed by them, such as "No map at [4,-19]."
What the map allows and where it leads
Once a map is open, a bar above the Map ID field sums it up.
What stands out
Badges show which of these the map has: PvP aggression, Monster fights, Underwater, Monster aggression, Outdoor, Prisms, Transition map and Public paddock. The other things a map can allow are set on nearly every map, so they aren't listed.
Exits
Exits come from the world travel graph, the one the game uses to plan trips from map to map. The bar reads Exits, followed by one badge per kind of exit with its count: Walk, Scroll, Door, Interactive or Other. Other badges can follow:
a number followed by conditional, when some exits have a condition; a number followed by zones, when the map's walkable ground is split into parts you can't walk between, each exit leaving from one of them; Not all exits shown, when the list was cut short. Under the badges, each exit has a button with its destination map ID, the destination's coordinates in parentheses when it has some, and how you take the exit: the name of the action, in the game's language, or the kind of exit. Click a button to open that map. A conditional exit has an outlined button: point at it to read "Requires:" and the condition, written the way the game writes it.
Instead of the exits, the bar can say "This map isn't in the travel graph." or "In the graph, but nothing leads out."
The map's place in the world
Under the controls, a row tells where the map is, when the game data knows it:
its coordinates, such as [4,-19], or No world position when the map isn't on any world map; the names of its sub-area and its area, and the map's own name when it has one; Level and the sub-area's level; Zaap when the map has a zaap, the dungeon's name when the map belongs to a dungeon, and the points of interest on the map. Maps without any world information, such as haven bags and some instances, don't show this row.
Other maps at the same coordinates
When other maps share the open map's coordinates, a line such as "3 other maps at these coordinates:" lists their IDs as buttons, up to 12, followed by the number of maps left out, such as "and 40 more". Click an ID to open that map. A very large number usually means instances share these coordinates rather than a real place.
Quest objectives
When quests have objectives on the map, a switch appears with their number, such as "4 quest objective(s) here". It's off at first. Turn it on to list each quest step: the quest's name, the step's name, and the objectives under them. Past 500 objectives, the count ends with a plus sign, as in "500+ quest objectives here", and the list stops there.
Interactive exits
Interactive exits lists the exits that leave from a cell inside the map rather than from an edge, such as doors, stairs, cellars and teleporters, one entry per cell, up to 12. Each entry has two buttons:
the first, named after the action, selects that cell on the map so you can see where it is; the second opens the destination and shows its coordinates or its map ID. When the cell leads to several maps, it shows how many, such as "3 destination(s)", and opens the first. These cells are also marked on the map with an orange diamond.
The map
On the map itself:
At the top left, the map's ID, such as "Map 39845888", then the number of the cell under the pointer or selected, such as "Cell 245". At the top right, Save as PNG and Fullscreen (Save a picture and go fullscreen). On each side where a map exists next to this one, an arrow. A solid arrow means the game has a route that way, and its tooltip reads "Go to map" with the ID. An outlined arrow means the map exists but no route leads there from this one, and its tooltip says so, as in "Map 39846400 exists, but nothing leads there from here". Click an arrow to open that map either way. The arrow keys of your keyboard do the same, except while you're typing in a field. Point at a cell to inspect it, and click it to keep it selected after the pointer leaves. When you move to another map, the previous one stays on screen until the new one is loaded, with a small spinner in the bottom right corner.
Views
View decides what the cell colours mean. Your choice applies to every map and is remembered in this browser.
View What the colours show Legend entries Terrain (at first) Where you can walk outside fights Walkable, Harvest, Haven bag, Obstacle Fight Placement and movement during fights Red team, Blue team, Walkable, Obstacle Line of sight Which cells block sight Blocks sight, Walkable, Obstacle Zones Which zone each cell belongs to Zone with its number, for up to 6 zones, and Movement zone Height How high each cell is Height with the lowest and the highest value of the map Exits Cells that take you to another map Exit, Arrow cell The legend only lists what the open map contains. With the Interactive layer on, it also shows Interactive when the map has interactive elements.
Layers
Layers turns each part of the drawing on or off. All of them are on at first, and your choices are remembered in this browser.
Layer What it draws Cells The coloured cells. Grid The grid of cells. Elevation A lighter or darker shade on each cell, depending on its height compared with the rest of the map. Outline A line around the walkable area of the map. Shadow A shadow under the walkable area, which lifts it off the background. Interactive A dot on each cell where an interactive element stands. Markers Marks placed on cells, such as the orange diamonds of interactive exits. Cell numbers The number of the cell under the pointer and of its four neighbours. Legend The colour legend of the view. Tooltip A box next to the pointer with the cell's number and what's set on it. Summary and cell details
Under the map, Summary counts the map's cells by kind: Walkable cells, Blocked in fight (since Dofus 3.7, the cells that aren't walkable), Block line of sight, Placement (red / blue), Harvest cells, Exit cells, Linked zones and Interactive elements.
Next to it, Cell details shows the record of the inspected cell as it was extracted from the game. It reads "Point at a cell to see its extracted record." until you point at one. Then you see the cell's number, its position in the map's grid as x and y, and the flags and numbers set on it, with the names the game data uses, such as mov or los. When interactive elements stand on the cell, "Interactions:" lists each one's interaction ID, with its graphic ID in parentheses. The map data holds no name for them.
Save a picture and go fullscreen
Save as PNG, the camera button at the top right of the map, downloads the map as it's drawn, with the current view and layers, in a file named map- followed by the map ID, such as map-39845888.png. The legend, the tooltip, the cell numbers and the badges shown over the map aren't part of the picture.
Fullscreen fills the screen with the map. Click Exit fullscreen, or press Esc, to come back.
When a map doesn't show
Message Meaning "Loading map..." The map is on its way. "No such map in this version's extracted data. Check the ID, or extract this version's data first." No map has this ID in the version's game data, or the version isn't extracted. "Couldn't read this map from the server." Asterobot couldn't send the map. Check that Asteroboard is connected to Asterobot, then click Show again. Where to go next
World map Game data Lire cette page en français
  • 70 vues
Search a game version's game data by name or text, browse its tables with filters, open a record and follow its links to other records.
The Game data tab of a Game page is a browser for everything Asterobot extracted from a game version: items, monsters, spells, maps, quests, texts and much more. You don't need SQL for it, and it's the easiest place to find a table or a column name before using it in a script or in the SQL tab.
Open it
Open the version's Game page from Game Manager, then its Game data tab. It has three tabs of its own: Search, Tables and SQL.
Above them, badges sum up the game data: the number of tables that mirror the game's files (table(s)), the number of tables Asterobot derived from them (derived), the total number of rows, and the codes of the languages it holds texts for, such as de · en · es · fr · pt.
When the version has no extracted game data, the tab shows No extracted data for this version and "Extract this game version's data to browse it here." See Extract game data.
The tab you're on, the table and the record you open are all in the page's address, so you can bookmark them or reopen them from your browser's history.
Raw and derived tables
Most tables mirror the game's own data, one table per kind of record. Others are derived by Asterobot to answer questions the game's files can't answer directly, such as every name in every language, or which maps hold which interactive elements. A derived table's name contains two underscores, like maps__interactive_elements, and each of its rows points to its parent row with _parent_id. The _names table links every name to its record, in every extracted language.
Search
Search finds records by what they're called, which the game's own files can't do: they map a number to a text, and nothing goes the other way.
On the Search tab, type in Query, for example Bouftou Royal. Choose the Search mode: By name, the default, or In game text. With By name, you can narrow the search with Table, or leave it on Any table. Results appear as you type, up to 100 of them.
Mode What it searches Results By name The names of records, in the tables that have names. Each word matches as the start of a word, and the best matches come first. The table, the name and the record's number after #. Click a result to open the record. In game text Every text the game can show, not only names. The text's number after #, and the text. These results don't open anything. The Table list only offers tables whose records have names.
Names and texts are searched in the Language chosen in the Game page's header. When the game data has no text in that language, a warning under the field names the language it used instead. Nothing found means there was no match, and The search failed means Asterobot couldn't run the search.
Tables
The Tables tab lists every table on the left, with its number of rows. Derived tables are greyed.
Filter tables... keeps the tables whose name contains what you type. Show derived, on by default, hides the derived tables when you turn it off. Click a table to browse it. Until you do, the right side says "Pick a table to browse it."
Browse a table
Above the rows, you see the table's name, a Derived badge on derived tables, and a line starting with "Derived from" that names the part of the game data the table comes from, followed by the kind of record when the table has one. The number of rows is on the right.
Rows come 25 per page, with page buttons under the table when there are more. Each column shows its name and its type, such as INTEGER for whole numbers. When the table's records have names, a first Name column shows each row's name in the page's language. Long values are cut: point at a cell to read it in full.
Filter the rows
Under each column's name, a column = value field keeps only the rows where that column holds exactly the value you type. Filters on several columns add up, and the table goes back to its first page. The value is read the way the column stores it, so letters in a column of whole numbers give an error such as column "level" is an integer, but "abc" is not.
On tables whose records have names, Find by name... lists the rows whose name matches what you type, up to 25, best first. The count then reads "matching rows" and the page buttons go away. Empty the field to see the whole table again.
When no row matches, the table says "This table is empty." When the rows can't be loaded, a red alert shows the reason, or Couldn't load the rows.
Open a record
Click a row to open its record. Rows of some derived tables can't be opened, because they have no _id of their own.
The record view
A record shows each column that holds a value, one per line, with the column's type. Columns without a value are left out. The top line has a button with the table's name, which takes you back to the rows, the record's number after #, and its name when it has one.
Links. When a column points at records of another table, and Asterobot checked during extraction that it really does, its values are buttons showing the name of the record they point at. Pointing at one shows "Open" followed by the table and the record's number, and clicking it opens that record. A value that leads to no existing record stays a plain number, and so do the values of a very long list past its first 500. Nested values, such as a list of effects or the cells of a map, unfold one level at a time. not in the catalog marks a field the table's description doesn't list. It shouldn't happen, and it's shown rather than hidden. When a record can't be displayed, the view shows "isn't a valid record id." after an address that isn't a number, the reason Asterobot gave, such as datacenter: no such record, or Couldn't load the record.
Other ways in
On the Maps tab, each search result of the world map and each monster or item of the region panel links to its record. See World map. On the Text tab, Find what uses this opens this tab. See Game texts. For script authors
The table and column names shown here are the ones scripts use with record(), table(), find() and query(). Lookups and SQL queries explain how. The package editor also has this browser beside your code, under Datacenter in its Game panel (The editor).
Lire cette page en français
  • 55 vues

SQL

Query a game version's game data in SQL from the SQL tab, start from the built-in examples, read the results and stay within the limits.
The SQL tab runs your own queries on a game version's game data, for the questions the other tabs can't answer: a join between tables, a count, a sort. Queries are written in SQLite's dialect of SQL. The game data is opened read-only, so nothing you run can change or break it.
Open it
On the version's Game page, open Game data, then SQL. The editor already holds the first example query, ready to run.
Run a query
Type a query in the editor, or change the one that's there. Click Run, or press Ctrl+Enter (Cmd+Enter on a Mac). The editor colours the SQL and suggests completions as you type:
the columns of the tables your query already names; every table name; common SQL keywords and functions; inside single quotes, the names of records in the Language chosen in the Game page's header: typing 'Bouf suggests Bouftou. Read the results
Next to the buttons, the tab shows the number of rows, stopped at the limit when the query had more rows than the tab displays, and how long the query took, in milliseconds.
The results table has one column per selected column, in the query's order, and two columns can share a name. Nested values show as JSON. Long values are cut: point at a cell to read it in full. A query that finds nothing shows "The query returned no rows."
The tab displays up to 500 rows. To see further rows, narrow the query with WHERE, or page through it with LIMIT and OFFSET.
Examples
Examples opens a menu of example queries grouped by topic. Picking one replaces what's in the editor, and the notes about that topic appear under the editor: which tables hold what, and the traps to avoid.
Topic What its queries cover explore What the game data holds: every table, its size, and which tables are derived names Finding records by name through the _names table monsters Monsters, how strong they are, and where they live items Items, what they do, and where they come from harvesting What grows where, and which skill gathers it navigation Coordinates, zaaps and the world travel graph crafting Recipes, ingredients and the jobs that make them maps Cells, walkability and what stands on the maps quests Quests, their steps, and dungeons text Every text the game can show, in five languages Several examples look for French names, with conditions such as n.language = 'fr'. Change fr to en, de, es or pt for another language.
Writing your own queries
_catalog lists every table, with its number of rows and whether it's derived:
SELECT name, row_count, derived FROM _catalog ORDER BY row_count DESC; Names go through _names, with the columns record_table, record_id, name_id, name, language and ordinal. A record can have several names, and ordinal 0 is its main one.
The texts of one language are in the table text_ followed by the language code, such as text_fr, with an id and a text column.
In a derived table, whose name contains two underscores, each row points to its parent row with _parent_id.
Put text between single quotes, as in 'monsters'. Double quotes only name a table or a column.
To search names or texts, the full-text indexes _names_fts and text_fr_fts (one per language) are much faster than LIKE '%...%'. The names and text examples show how to use them.
The Tables tab of Game data shows every table's columns and their types, which helps while you write.
Read-only and limits
INSERT, UPDATE, DELETE, CREATE and every other statement that writes fail, and ATTACH is refused too, so a query can't reach any other database file.
When the editor holds several statements separated by semicolons, all of them run, and the tab shows the result of the last one.
Limit Value Past it Rows displayed 500 The other rows are left out, and stopped at the limit appears. Time 10 seconds per query, once its turn has come The query is interrupted and fails. Length of the query 64 KiB The query fails with a text such as datacenter: query is 70000 bytes, over the 65536 byte limit. Size of one value the query builds 16 MiB The query fails. Queries at once 4 on one game version, shared by every open SQL tab and every bot's scripts Other queries wait for their turn, in the order they came. When a query fails
A red alert shows the reason as SQLite gives it: a text starting with datacenter: that names the problem, such as no such column: nmae for a mistyped column name. When Asterobot gave no reason, the alert says The query failed. Fix the query and run it again.
Use a query in a script
A script runs the same kind of query with query() from asterobot:gamedata, on the game data of its bot's game version. The SQL tab is the quickest place to get a query right before putting it in a script: SQL queries explains the rest, including parameters.
Lire cette page en français
  • 64 vues
Check the game's text file of each language on the Text tab, and look up a single game text by its numeric ID or its text key.
Dofus keeps every text it shows, from item names to quest dialogue, in one text file per language, and the game data points to those texts by number. The Text tab of a Game page reads these files directly. It gives statistics on the file of a language, and it looks up one text exactly as a script's text() would find it.
Choose a language
The tab follows the Language selector in the Game page's header: Français, English, Deutsch, Español or Português. Changing the language reloads the statistics and clears the last lookup.
Unlike Maps and Game data, this tab reads the downloaded text files rather than the extracted game data, so it works as soon as the files are there. A default download includes the text files of every language.
Localization table statistics
The Localization table statistics card describes the text file of the selected language:
Line Meaning File size (bytes) The size of the file. Integer keys How many texts have a numeric ID, with the lowest and the highest ID in parentheses. Text keys How many texts have a text key, such as ui.common.classic. Unique strings How many different texts the file holds, with the number of empty ones in parentheses. Text bytes The total size of the texts. Longest text (bytes) The size of the longest text. Invalid UTF-8 and Unreadable Texts with a broken encoding, and entries that couldn't be read. These two lines only appear, in red, when one of them isn't zero. Refresh reads the file again. When the language's file isn't downloaded, the card says "No localization table installed for this language yet." Get it with Download needed files on the Information tab, or with Download more files (Manage game versions).
Look up a text
In the Text lookup card, choose Integer ID or Text key. Type the ID, such as the value of a name_id column found in Game data, or the text key. Click Look up, or press Enter. The text appears under the field, in the selected language, with its line breaks. "No entry for this id/key." means the file has no text with that ID or key.
The lookup reads the same file as text() in a script (Lookups), which makes it a quick way to check what a script will get.
Find what uses a text
The text files only go from a number to a text. To find the records behind a name or a sentence, click Find what uses this at the bottom of the Text lookup card. It opens the Game data tab, where Search finds records by name, or any text with In game text (Game data).
Lire cette page en français
  • 56 vues
Download and extract a game version's music from the Music tab, play it in Asteroboard, and keep listening while you browse other pages.
Dofus ships several hundred pieces of music. Asterobot doesn't download them with the game files, since no bot ever plays a sound, but the Music tab of a Game page fetches them for you and plays them in Asteroboard.
Get the music
Until there's something to play, the tab shows No music yet and tells you which step is missing.
1. Download
When nothing is downloaded, the tab says "This version's audio banks aren't downloaded yet."
Click Download. Asteroboard shows Download started, with "The audio banks download in the background." Wait for the download. A progress bar shows "Downloading..." with a percentage. Asterobot downloads the four sound banks that hold the music, about 900 MB. The game's other sound banks, mostly combat and interface sounds, stay out: the whole set is about 2 GB.
This is an ordinary download of more files for the version. It waits in the same queue as the other downloads, and the version's row in Game Manager shows Downloading in the meantime (Download a game version). If it can't start, Asteroboard shows Couldn't start the download with the reason.
2. Extract
Once the banks are downloaded, the tab says "The audio banks are downloaded but not extracted yet." and how many banks there are to extract.
Click Extract the music. The button reads Extracting... while it runs. When it's done, the player and the track list appear. This extracts the music and nothing else: the version's game data isn't rebuilt, and its Extracted and Ready columns don't change. If it can't start, Asteroboard shows Couldn't start the extraction with the reason. Later on, Extract data or Re-extract data on the version extracts the music too, and Remove extracted data deletes it (Extract game data).
When the tab can't read the version's music at all, it shows Couldn't load the music.
Play
Click a track in the list to play it. The player above the list has, from left to right:
play and pause; stop; previous track and next track; loop, which repeats the current track while it's on; the title and album of the track playing, or "Nothing playing"; the volume. Under them, a bar shows the position in the track and its length. Drag it to move through the track.
The play queue is the track list as it stands when you pick a track: filtered, sorted, and across every page. After the last track, next track starts again from the first one. Previous track restarts the current track when you're more than 3 seconds into it. Play, with nothing loaded yet, starts the first track of the list.
The track list
Control What it does Album list Shows All albums, or one album with its number of tracks in parentheses. Each album is one sound bank. Filter tracks... Keeps the tracks whose title, album or size contains what you type. Columns Hides or shows the Track, Album and Size columns. Column titles Sort the list by that column. A badge on the right counts the tracks shown, with their total size. The list shows 25 tracks per page, and says "No track matches this filter." when the filter leaves nothing.
Keep listening while you browse
The music keeps playing when you leave the tab. On every other page, a small player appears in the top bar, with play and pause, the track's title, which takes you back to the Music tab, and a button that stops the music. Stopping forgets the queue, and the small player goes away.
Asteroboard remembers the volume and the loop setting in this browser, but not the queue: after reloading the page, pick a track again. The music plays in your browser from your Asterobot, so it stops when you close Asteroboard.
Where to go next
Game page Manage game versions Lire cette page en français
  • 67 vues

Compte

Navigation

Recherche

Recherche

Configurer les notifications push du navigateur

Chrome (Android)
  1. Appuyez sur l'icône de cadenas à côté de la barre d'adresse.
  2. Tap Autorisations → Notifications.
  3. Ajustez vos préférences.
Chrome (Desktop)
  1. Cliquez sur l'icône représentant un cadenas dans la barre d'adresse..
  2. Select Paramètres du site.
  3. Find Notifications et ajustez vos préférences.