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.