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.
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, or because a connection attempt finished, a relayed session arrived, or a connection dropped. When a connection drops, nothing reconnects: a Full socket bot stays on Connected to login server, and a MITM bot goes back to Waiting for your game client.
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. 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
  • 2 vues
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 The Dofus version the bot works with, 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. 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
  • 2 vues
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
  • 2 vues
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 and message selection. 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. 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; its game version is no longer installed in Game Manager; 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
  • 4 vues
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.
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
  • 4 vues
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/10-library/. 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.
  • 2 vues
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. 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
  • 2 vues
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.
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
  • 2 vues
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.
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. 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
  • 2 vues
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 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.
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.
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 Files and folders, to find where the library is stored
  • 2 vues
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 250 ms 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
  • 8 vues
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. On the right are two groups of controls: one for the bot's connection, one for its package.
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. 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 Not ready yet. See Map. 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. 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
  • 2 vues
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. Your first bot turns on the chat for the first time; this page covers the rest.
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 The game chat the bot receives, while Live chat is on. 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 show the speaker's character name, then what they said.
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.
What's kept
Asterobot keeps the last 200 Asterobot and script lines of each bot. When you open the tab, the console starts with those lines, then new ones arrive as they happen. Asterobot keeps them in memory only, so they're gone after it restarts. Asteroboard shows up to 500 lines per bot while it stays open.
Chat is different: Asterobot keeps none of it. Asteroboard collects chat lines while it's open, as long as Live chat is on, and loses them when you reload or close it. They also come from the same place as the messages of the Network tool's Traffic panel, which has three consequences:
While Pause is on in Traffic, chat lines stop arriving in the console too. Clear in Traffic also removes the chat lines from the console. Once that panel holds about 2,000 messages for the bot, the oldest ones go, and their chat lines with them. See Network traffic.
Live chat
The Live chat switch, at the top right, turns the game chat on for this bot. It's the same setting as the ChatChannelMessageEvent message in the Network tool's Settings: turning one on turns the other on. The choice is saved with the bot, so it stays as you left it after a restart, and everyone who opens this bot sees the same.
Only chat that arrives while the switch is on shows up: messages from before don't appear afterwards.
The switch only changes what Asteroboard shows. A script receives the chat whether it's on or not.
Filter and search
Sources chooses which sources are shown: tick or untick Asterobot, Script and Chat. When a script writes a lot, keeping only Script makes it easier to follow. Filter 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.
Send a chat message
The box at the bottom of the console sends a message in the game chat.
Warning
This really sends the message in the game, as your character, on the general channel (GLOBAL), where the players around your character can read it.
Type your message in "Say something in the game chat...". Press Enter, or click the send button next to the box. The box empties once the message has gone out. It can only use the general channel. To talk on another channel, send ChatChannelMessageRequest from the Network tool and set its channel field: see Send messages by hand.
The bot must be connected to a game. If the message can't be sent, the alert Couldn't send the message appears above the lines with the reason, such as bot has no game connection: "my-bot".
Where to go next
Information Network traffic
  • 2 vues
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
  • 2 vues
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 five messages in the Network tool's Settings: InventoryContentEvent, ObjectsQuantityEvent, ObjectQuantityEvent, KamasUpdateEvent and InventoryWeightEvent. It only shows as on while all five 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
Quantities, kamas and pods change as you play. New stacks don't: an item you loot, buy or craft that you didn't have before only appears the next time the game sends the full inventory, when the character enters the game again. A stack that leaves the inventory completely can also stay listed until then.
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. A whole stack stays marked until the game sends the full inventory again.
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.
  • 2 vues
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 chat on the Console tab and Live inventory on the Inventory tab are shortcuts: they tick 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
  • 2 vues
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
  • 2 vues

Map

The Map tab of a bot page is meant to show where the bot is in the game.
Note
Coming soon. The Map tab will show the map your bot is on and the cell it stands on. Asterobot doesn't report a bot's position yet, so for now the tab always says "This bot hasn't reported a map yet."
What the tab shows today
A badge with the bot's name, and an empty map area with the message "This bot hasn't reported a map yet." It looks the same whatever the bot is doing, connected or not, and there's nothing to click.
Look at maps in the meantime
Every map of the game is on the Game page of the bot's game version:
In the sidebar, open Game Manager. Open the game version the bot uses: its name, or its Inspect button. Click the Maps tab. There you can browse the world map, search for a monster, a resource or a zaap, and open any map by its id or its coordinates to see its cells, exits and interactive elements. See World map and Map viewer.
Where to go next
Game page Bot page
  • 4 vues
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
  • 2 vues
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
  • 2 vues
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, Blocked outside fight, Obstacle Fight Placement and movement during fights Red team, Blue team, Blocked in fight, 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, 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
  • 2 vues
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).
  • 2 vues

SQL

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 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. 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.
  • 2 vues
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).
  • 2 vues
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
  • 4 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.