Smooth
Administrateurs
-
Adhésion
-
Dernière visite
-
Actuellement
Affichage de Informations dans la catégorie Guide Français : Suivre un bot
Tout ce qui a été publié par Smooth
-
Glossary
These docs use the same word for the same thing on every page. When a word is unclear, look it up here, then follow the link to the page that covers it in full. A Account Manager: the Asteroboard page where you store Ankama accounts and sign them in. See Add an account. actions: the buttons a package declares. They appear on a bot's Settings tab and run part of the package's script when you click them. See Package settings and actions. Ankama account: the account you play Dofus with. A Full socket bot signs in with one stored in Account Manager. A MITM bot doesn't need one. See Add an account. Ankama Launcher: Ankama's program that installs and updates Dofus. MITM mode works with the Dofus it installs. See MITM mode. Ankama Shield: Ankama's extra protection when signing in, like two-factor authentication. Accounts that use either one can't be used in Full socket mode, only in MITM mode. See Shield and two-factor authentication. Asteroboard: the web interface at https://asteroboard.asterobot.net that controls your Asterobot. See The three parts. Asterobot: the program you download and run on your computer. Your bots, Ankama accounts, game versions and packages all live in it. See The three parts. asterobot.net: the Asterobot website, with your account, the Asterobot downloads, the marketplace and the forum. See The three parts. asterobot.net account: your account on the website. Asterobot signs in with it. See Create an asterobot.net account. B bot: a saved setup that connects to Dofus and runs a package. It has a name, a game version, a language, connection preferences, and optionally an Ankama account and a package. See What is a bot. Bot Manager: the Asteroboard page that lists your bots and where you add new ones. See What is a bot. C checksums.txt: the file published next to the Asterobot archives, with a SHA-256 checksum for each one, so you can check your download. See Download Asterobot. chunk: a piece of game content, as Ankama's download servers deliver it. Asterobot stores each chunk once, whichever game version it came from, and rebuilds the game files from the chunks. See Manage game versions. Community: see Local, Community and Official. config.toml: the file where Asterobot saves the settings you changed. See Files and folders. connection script: a package that gets a Full socket bot into the game, by identifying it on the game server and entering the game with a character. See Full socket mode. console: a bot's Console tab, where you read what Asterobot says about the bot, what its script logs and, with live chat on, the game chat. Asterobot has a console of its own too, on the Server page. See Console. D dependency: a package whose code another package uses. Installing a package from the marketplace also downloads the packages it depends on. See What is a package. device identifier: the hardware fingerprint a bot announces when it signs in. Asterobot generates one for each bot that has an Ankama account. A bot without an account takes the one of the Dofus client it relays. See Bot settings. E extract: to turn a game version's game files into game data. A game version must be extracted before you can add a bot with it. See Extract game data. F Full socket mode: the bot signs in and talks to the game servers on its own, with no Dofus client. See Full socket mode. G game data: what Asterobot extracts from the game files: items, monsters, maps, texts and more. Packages and the Game page read it. See Extract game data. game files: the files Asterobot downloads from Ankama for a game version. By default, only the ones a bot needs. See Why Asterobot downloads Dofus. Game Manager: the Asteroboard page where you download, extract and remove game versions. See Manage game versions. Game page: the page of one game version, with its Information, Text, Maps, Game data and Music tabs. See Game page. game version: one Dofus version downloaded by Asterobot. See Download a game version. I Incompatible: the badge on a package that states which versions of Asterobot it works with, when yours isn't one of them. The package stays in your library but won't start. See What is a package. interceptor: a function in a script that is asked about a message before it goes on, and can let it through, change it or drop it. See Intercepting. L launch reason: why a script starts, which it reads in launch.reason: "initial", "resume" or "reload". See The entry function. library: the packages installed in your Asterobot. See Manage your library. Library Manager: the Asteroboard page that lists your library, where you download, import, create and remove packages. See Manage your library. live chat: the Live chat switch on a bot's Console tab. While it's on, the game chat the bot receives shows up in its console. See Console. live inventory: the Live inventory switch on a bot's Inventory tab. While it's on, the bot sends its character's inventory to Asteroboard. See Inventory. Local, Community and Official: the three badges of the Provenance column in Library Manager, which Asterobot picks from a package's name. Local is a plain name you created, copied or imported, Community a marketplace name such as @some-author:auto-harvest, and Official a name starting with @asterobot:. See What is a package. M manifest: asterobot.json, the one file of a package that isn't code. It lists the packages it depends on, the Asterobot versions it works with and the permissions it declares. See The manifest. man-in-the-middle: what MITM stands for. See MITM mode. marketplace: the Library category of asterobot.net, where players share packages. See The marketplace. message: one piece of data exchanged between Dofus and the game servers, such as a chat message or an inventory update. See Network traffic. MITM mode: short for man-in-the-middle. The bot relays the session of a Dofus client that someone plays, sitting between the game and Ankama's servers. See MITM mode. N Network tool: the Network tool, under Tools on a bot's page. Its Settings panel chooses which messages Asteroboard shows, and its Traffic panel lists them as they pass. See Network traffic. O Official: see Local, Community and Official. P package: what you install in the library and give to a bot. It holds a script, and it can declare package settings and actions. See What is a package. package settings: the options a package declares, shown on a bot's Settings tab. See Package settings and actions. Preferences: the Asteroboard page for its language, its appearance and the address of your Asterobot. See Preferences. Problems: the alerts at the top of a bot page when the bot couldn't connect or its script stopped with an error. See Bot page. R Ready for bot: what Asteroboard says about a game version whose game files are downloaded and whose game data is extracted. You need a version in this state to add a bot. See Extract game data. S script: the JavaScript code inside a package. See What scripts can do. Server page: the Asteroboard page about Asterobot itself, with its Status, Console and Config tabs. See Status and console. setting: one option of Asterobot, such as server.listenAddress, changed on Server > Config. See Settings reference. sign-in code: the eight-character code Asterobot gets when it signs in to asterobot.net. You confirm it on the website within 15 minutes. See Sign in with asterobot.net. Start waiting: the button that makes a bot wait for your Dofus client, in MITM mode. See MITM mode. T tested version: the Dofus version a release of Asterobot was tested with. A game version that matches it shows Compatible, and any other shows Different version. See Why Asterobot downloads Dofus. traffic: the messages going through a bot. You choose which ones Asteroboard shows. See Network traffic. two-factor authentication: see Ankama Shield.
-
Requirements
Go through this list before you download Asterobot. Most items take a few seconds to check, and a few of them depend on whether your bots will use Full socket mode or MITM mode (see Full socket and MITM). A supported computer Asterobot is published for six combinations of system and processor: System Processor For example Windows x86-64 (Intel or AMD) Most Windows PCs Windows ARM64 Laptops with a Snapdragon X processor macOS Apple silicon (ARM64) Macs with an M-series chip macOS Intel (x86-64) Macs with an Intel processor Linux x86-64 (Intel or AMD) Most PCs and servers Linux ARM64 Raspberry Pi 4 and 5, ARM servers such as Ampere or AWS Graviton The x86-64 builds need a processor that supports the x86-64-v2 instruction set, which every x86-64 processor made since about 2009 does. On an older processor they won't run. A Windows computer with an ARM64 processor can also run the x86-64 build through Windows' own emulation, but the ARM64 build is faster there and uses less memory. Whatever system Asterobot runs on, it downloads the Windows version of Dofus's files. A Mac or a Linux machine works just as well as a Windows PC. Download Asterobot explains how to tell which processor your computer has. A web browser Asteroboard runs in a web browser, on the computer where Asterobot runs or on another device. The first time, the browser needs an internet connection to load https://asteroboard.asterobot.net. After that, Asteroboard opens even without an internet connection, as long as it can reach Asterobot. A browser for automatic Ankama sign-in This one only matters for Full socket bots, and only if you want Asterobot to sign your Ankama accounts in by itself. To do that, Asterobot drives a real browser on the computer where it runs: Google Chrome, Chromium or Microsoft Edge, installed in its usual place. Another Chromium-based browser, such as Brave, Vivaldi or Opera, works too once you set its path in the zaapmanager.browserPath setting. Without one of these browsers, you can still sign each account in yourself. Automatic sign-in and Manual sign-in explain both ways. Disk space When you download a game version, Asterobot fetches the files a bot needs, not the whole game. The total depends on the Dofus version, and extracting the game data takes more space on top of the downloaded files. A few sizes are worth knowing, all approximate and changing with game updates: Item Approximate size When it takes space World map artwork, part of the files a bot needs 545 MB For every game version you download Map data, part of the files a bot needs 450 MB, measured on Dofus 3.6.10.10 For every game version you download The game's music 900 MB Only if you download it from the Game page's Music tab Files and folders shows where all of this is stored. Network access Asterobot listens on a few ports and needs to reach the internet: Connection Default address What it's for Asteroboard to Asterobot 127.0.0.1:8080 Everything Asteroboard shows and does Dofus to Asterobot 127.0.0.1:5555 and 127.0.0.1:5556 MITM mode only: your game's sign-in, then its game session Asterobot to the internet Outgoing connections asterobot.net, and Ankama's sign-in, game servers and game downloads By default, all three ports only accept connections from the computer Asterobot runs on, so nothing is open to your network. If another program already uses one of them, or if you want to reach Asterobot from another device, see How the parts connect. Accounts and the game An asterobot.net account. Asterobot signs in with it the first time it starts, and you can't add a bot until it's signed in. See Create an asterobot.net account. For Full socket mode, an Ankama account for each bot. Accounts protected by Ankama Shield or two-factor authentication can't be used in this mode. See Add an account. For MITM mode, Dofus 3 installed with the Ankama Launcher. You don't store any Ankama account in Asterobot. Asterobot finds the game in the launcher's usual folder on Windows and Linux, and on macOS you enter the folder yourself. The game version you play must also be the one Asterobot downloaded. MITM mode has the details. A tool to open .7z archives Asterobot is published as .7z archives, so you need a program that can extract them, such as 7-Zip on Windows or the 7zz command from the 7zip package on Debian or Ubuntu. Download Asterobot covers each system. Where to go next Create an asterobot.net account if you don't have one yet. Download Asterobot when you're ready.
-
Full socket and MITM
A bot can reach Dofus in two ways. In Full socket mode, it signs in and plays on its own, with no game client. In MITM mode, short for man-in-the-middle, it joins the session of a Dofus client that you play. Full socket mode The bot does by itself what a Dofus client would do. Asterobot signs in to Ankama with an Ankama account you stored in Account Manager, picks a game server and opens the connection to it. Then a package takes over: it identifies the bot on the game server, enters the game with a character and plays. Nobody needs to sit at the computer and no Dofus window is open. That's what makes Full socket mode the one for bots that run without you, including several accounts at once on one computer. The catch is that package. Asterobot doesn't identify a bot on the game server by itself, so a Full socket bot needs a connection script to get into the game. Note Coming soon. Ready-made connection scripts are on their way. Until then, Full socket mode explains how to get a bot in with a script of your own. MITM mode You start Dofus from the Ankama Launcher and sign in as usual, and Asterobot sits in the middle, between your game and Ankama's servers, passing everything along in both directions. The bot that receives your session sees all of it. A package running on that bot can react to what happens, send messages of its own, and even change or block messages on their way. To route your game through it, Asterobot edits one line in a file of your Dofus folder, and puts that line back once no bot is waiting for a game any more, or when Asterobot stops. You never give Asterobot your Ankama login or password: you sign in yourself, in the game, like any other day. Side by side Full socket MITM Ankama account stored in Asterobot Yes No Dofus client Not needed Needed, installed with the Ankama Launcher Who plays A package You, with a package if you want one Package needed to enter the game Yes, a connection script No Accounts with Ankama Shield or two-factor authentication Not supported Supported, since you sign in yourself Several bots One Ankama account per bot One Dofus client per bot Game version downloaded by Asterobot Needed Needed, and it must be the same version as your Dofus One bot, both ways A bot doesn't belong to a mode. The mode is what the bot does when you bring it online, and the only thing that limits it is whether the bot has an Ankama account: A bot with an Ankama account offers both Connect, which signs it in on its own, and Start waiting, which makes it wait for your game. A bot without an account can only wait for your game. Connect stays greyed out, and its tooltip says "This bot has no Ankama account to sign in with." A bot can't do both at the same time, though. An Ankama account has one game session at a time, so a bot has to be disconnected before it switches from one mode to the other. Which one to choose MITM mode is the easiest place to start. There's nothing to store and no connection script to find, which is why Your first bot uses it. It's also the mode for watching or extending the game you're playing, and the only one that works with an account protected by Ankama Shield or two-factor authentication. Full socket mode is for bots that play without you: no Dofus window, nobody at the keyboard, and as many Ankama accounts as you run bots. Pick it once you have a connection script for your bots. Where to go next Full socket mode sets up a bot that signs in on its own. MITM mode explains everything about relaying the game you play. Requirements lists what each mode needs on your computer.
-
The three parts
Using Asterobot means using three things that work together: Asterobot, the program on your computer; Asteroboard, the web interface you control it from; and asterobot.net, the website. Knowing which part does what makes the rest of this guide easier to follow, and it tells you what keeps running when you close a window. Asteroboard, in your browser → Asterobot, on your computer (127.0.0.1:8080) Your Dofus client, in MITM mode → Asterobot, on your computer Asterobot, on your computer → asterobot.net Asterobot, on your computer → Ankama's servers Asterobot Asterobot is the program you download and run. Everything happens inside it: your bots and their connections to Dofus, the Ankama accounts you store, the game versions it downloads from Ankama, the packages in your library and the scripts they run. It keeps your settings in a file called config.toml, and the rest of its data in folders of your user profile, not next to the program itself. Files and folders lists them. While it runs, Asterobot waits for Asteroboard on an address of your computer: 127.0.0.1:8080 by default. That address only accepts connections from the computer Asterobot runs on. Open it in a browser and you land on Asteroboard, already set up to talk to this Asterobot. Asterobot has no window of its own. On Windows it runs in a terminal window, and on macOS and Linux you start it from a terminal. As long as that terminal is open, Asterobot is running. First launch shows how to start and stop it. Asteroboard Asteroboard is the web interface at https://asteroboard.asterobot.net. The page itself comes from that address, but everything it shows comes from your Asterobot: your browser connects straight to Asterobot's address, and Asteroboard displays what Asterobot reports and sends it what you click. It's the same Asteroboard for everybody. It knows which Asterobot is yours because the address is saved in your browser, on the Preferences page under Server URL. That address and your interface preferences (language, colors, layout) are the only things Asteroboard keeps for itself. They're saved in the browser you use, so another browser or another device starts with the defaults. You can install Asteroboard as an app from your browser. Once it has loaded, it keeps working without an internet connection, as long as it can still reach your Asterobot. It also updates itself: while it's open, it checks for a new version every 30 minutes and offers to switch when you're ready. Tour of Asteroboard covers all of this. What closing Asteroboard stops Nothing in Asterobot. When you close the tab or the app, your bots stay connected, their packages keep running and downloads carry on. Open Asteroboard again and it shows things as they are now, and a bot's console starts with the last 200 lines Asterobot kept for it. A few things only lived in the page, and they go away with it: The messages a bot's Traffic panel had captured, with the chat lines the bot's console showed from them. Which messages the bot follows is saved with the bot and stays as it was. The inventory on a bot's Inventory tab, until the character enters the game again. The lines on Server > Console. The Extract data after downloading choice of a game download that hasn't finished. The download itself continues, but its extraction won't start on its own. You can start it later from Game Manager. The music playing from the Game page. What stopping Asterobot stops Everything. When Asterobot stops, every bot disconnects, including a bot that relays the game you're playing, so your game is disconnected too. Running scripts stop, and so does any download in progress. Asteroboard shows Server disconnected and keeps trying to reconnect until Asterobot runs again. asterobot.net asterobot.net is the website around Asterobot. You'll use it for: Your asterobot.net account. Asterobot signs in with it, using a code you confirm on the website. See Sign in with asterobot.net. Downloading Asterobot, from https://asterobot.net/files/category/3-asterobot/. When a newer version is published there, Asterobot tells you as it starts. The marketplace, the Library category at https://asterobot.net/files/category/10-library/, where players share packages. See The marketplace. The forum, at https://asterobot.net/forums/, to ask for help and talk with other players. The Dofus protocol reference, at https://asterobot.net/docs/dofus-protocol/, which describes the messages the game exchanges. Script authors use it the most. Announcements from the Asterobot team also reach you through Asterobot, as notifications in Asteroboard. On different machines The three parts don't have to share a computer. Asteroboard can run on a phone or another PC, and Asterobot can run on a remote machine. In MITM mode, short for man-in-the-middle, where a bot joins the game you play, the Dofus client can even be on a third computer. None of this works out of the box, because Asterobot only accepts connections from its own computer by default. Network setups explains each arrangement and what to change. Where to go next Full socket and MITM explains the two ways a bot connects. Requirements lists what you need on each machine.
-
What is Asterobot
Asterobot is a program you run on your own computer to run bots for Dofus 3. It works on Windows, macOS and Linux, and you control it from Asteroboard, a web interface that opens in your browser. Caution Using bots breaks Ankama's terms of use, and Ankama can sanction the accounts involved, whichever way the bot connects. Read Accounts and safety before you use Asterobot with an account you care about. What you can do with it Run bots without a game client In Full socket mode, a bot signs in with an Ankama account you stored in Asterobot and talks to Ankama's servers directly, the way the game itself does. No Dofus window is open. One computer can run several of these bots, each with its own Ankama account. Follow the game you play In MITM mode, short for man-in-the-middle, you start Dofus from the Ankama Launcher and play as usual, and a bot joins your game session. From Asteroboard you can read your chat and your inventory, watch the messages your game exchanges with the servers, and give the bot a package that reacts to what happens. You don't give Asterobot your Ankama login or password for this. Run packages What a bot actually does comes from a package: a small JavaScript program installed in your library. You can download packages other players share on the marketplace at asterobot.net, or write your own in the editor built into Asteroboard. Explore the game's data Asterobot downloads Dofus's game files from Ankama and extracts what's inside them: items, monsters, maps, texts and more. The Game page in Asteroboard lets you browse the world map, inspect a map cell by cell, search the game data or query it in SQL, look up the game's texts and listen to its music. None of that needs a bot. Watch and send messages Every bot has a network panel. It lists the messages you chose to follow as they arrive, with their fields, and it lets you send a message yourself, either to the server or to the game client. What it doesn't do on its own Asterobot gives a bot a connection. It doesn't give it a goal. A bot with no package connects and does nothing more: no fighting, no harvesting, no answering other players. All of that comes from a package, one you install or one you write. Full socket mode has one more gap you need to know about. Asterobot signs the bot in, picks a game server and opens the connection to it, but it doesn't identify the bot on that server, so the bot never enters the game with a character. That part is the job of a connection script, a package that runs when the bot connects. MITM mode doesn't need one, because the Dofus client you play has already done it. Note Coming soon. Ready-made connection scripts are on their way. Until then, use MITM mode, or write your own connection script with the developer docs. Who it's for Asterobot is for Dofus players who want to automate part of their game, or who want to see what their game really does. You don't need to write code to use it: running a bot in MITM mode, installing a package from the marketplace and changing its settings all happen in Asteroboard. If you do write JavaScript, the developer docs cover everything a package can do. You can also use Asterobot without ever running a bot, just to look things up on the world map or in the game data. Where to go next The three parts explains how Asterobot, Asteroboard and asterobot.net fit together. Full socket and MITM helps you choose how your bots connect. Requirements lists what you need before you download anything.
-
UpdateLifePointsEvent
Life regeneration has ended; the message also carries life values the current client ignores. Kind eventArea Game.CharacterNamed by beta, gamemapping Ends the life regeneration that LifePointsRegenBeginEvent started. When it arrives the client stops its regeneration timer. THE CURRENT CLIENT DOES NOT READ ITS VALUES. The message declares two plain int32 and one int32 with explicit presence, which matches the reference build's life_points, max_life_points and optional life_points_gained. No dumped 3.6 client code reads any of them, so which plain int32 is the current life and which the maximum cannot be proven, and both stay obfuscated. Do not guess from their order. FOR LIFE, USE THE CHARACTERISTICS. Current life is tracked in the character sheet (CharacterCharacteristicsEvent); between updates the client estimates regeneration locally from the rate it was given. When you may send it Requires character_selected inferred Related messages Unsolicited - nothing you send causes this the client reacts to it without having asked for anything Fields #FieldTypeMeaningYou set it 3life_points_gainedint32How much life was regained, when the server says so. Explicit presence: absent is not the same as zero. Named from its explicit presence, not from client behaviour: the current client never reads it.never Recovered with score 180, confidence 0.84, margin 180 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 3.
-
TrustStatusEvent
Whether the server considers this client session certified. Kind eventArea Game.ConnectionNamed by beta, gamemapping Pushed in the burst after a successful IdentificationRequest, carrying the server's own verdict on the client's integrity. A false value is not an error you can answer - there is no reply. It is the server telling you it has not certified this session, and it is worth logging if you ever see it, because a real client normally reports certified. When you may send it Requires authenticated observed Related messages Arrives after IdentificationRequest Fields #FieldTypeMeaningYou set it 1certifiedboolWhether the server certifies this client session.never Recovered with score 141, confidence 0.97, margin 141 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
-
TimeEvent
The server's wall-clock time and timezone offset, used to correct the client's own clock. Kind eventArea Game.BasicNamed by beta, gamemapping The server's clock. The client compares timestamp against its own UTC epoch milliseconds and stores two corrections: the raw skew, and the skew adjusted for timezone_offset. USE IT INSTEAD OF YOUR OWN CLOCK FOR ANYTHING THE SERVER TIMES. Cooldowns, regrowth timers and scheduled events are all reckoned against the server's clock, and a script running on a machine whose clock drifts will be early or late by exactly that drift. timestamp is in MILLISECONDS, not seconds - a value read as seconds lands about fifty thousand years in the future. timezone_offset is in MINUTES, not hours and not milliseconds; the client multiplies it up itself. When you may send it Requires authenticated observed Related messages Unsolicited - nothing you send causes this the server states its clock; no request asks for it Fields #FieldTypeMeaningYou set it 1timezone_offsetint32The server's timezone offset from UTC. (minutes) MINUTES. The client converts it to milliseconds itself.never 2timestampint64The server's current wall-clock time. (milliseconds since the unix epoch) MILLISECONDS. Reading it as seconds is off by a factor of a thousand.never Recovered with score 90, confidence 0.94, margin 90 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 2.
-
TextInformationType
Which channel a server text message is routed to. Kind enumArea Game.ChatNamed by beta WHERE THE MESSAGE GOES. The client derives the chat channel from this value, so it decides whether the text appears as an ordinary line, an error, a popup, fight-log chatter, or speech from an entity. TEXT_INFORMATION_POPUP is the one that opens a popup rather than writing a line; TEXT_INFORMATION_ERROR is the error styling. EXPECT VALUES YOU DO NOT KNOW. The set has grown from nine to thirteen since the reference build and the four newer ones have no published names, so treat an unknown value as 'display it plainly' rather than switching exhaustively. Not sent on its own — it is a member type of TextInformationEvent, never sent alone. proven Used by TextInformationEvent Values ValueNumberMeaning TEXT_INFORMATION_MESSAGE0General information, shown as an ordinary message. The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. TEXT_INFORMATION_ERROR1An error, shown in the error style. The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. TEXT_INFORMATION_PVP2PvP information. The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. TEXT_INFORMATION_FIGHT_LOG3A line of the fight log. The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. TEXT_INFORMATION_POPUP4Shown as a popup rather than inline. The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. TEXT_LIVING_OBJECT5Text spoken by a living object (a pet or similar). The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. TEXT_ENTITY_TALK6Text spoken by an entity on the map. The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. TEXT_INFORMATION_FIGHT7Fight information. The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. TEXT_INFORMATION_EVENT8Event information. The name is the reference build's, matched by NUMBER. Beta 2.73.7.7 declares nine values 0-8 and every dumped 3.x build still declares all nine, adding 10-13 on top and skipping 9 - growth that is append-only, which is what makes the low numbers safe to carry. No dumped client distinguishes one value from another by name, so only the NUMBER is proven here. Recovered with score 220, confidence 0.83, margin 220 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 9 of 13.
-
TextInformationEvent
A system line pushed into the chat log, sent as a message id plus substitution arguments rather than as text. Kind eventArea Game.ChatNamed by beta, gamemapping ONE OF THE HIGHEST-VALUE INBOUND MESSAGES THERE IS. Almost everything the server tells you in words - fight results, PvP notices, item and object notifications, entity speech, event announcements - arrives here. THE SERVER DOES NOT SEND YOU TEXT. It sends message_id, an identifier into the client's own information-message table, plus parameters, an ordered list of substitution arguments. The CLIENT renders the localised sentence. A script that expects a readable string finds none. So match on message_id, not on words. That is both more reliable and language-independent: the same event carries the same id whatever locale the client runs in. If you need the sentence, you need the client's information-message table to resolve the id and its template. message_type selects what KIND of line this is and therefore which chat channel it lands in. parameters are positional and their meaning depends entirely on which message id they accompany. The client splits and inspects individual entries before formatting, so do not assume they are all plain strings. When you may send it Requires character_loaded observed Related messages Unsolicited - nothing you send causes this the server narrates whatever it wants to narrate; no request asks for it Fields #FieldTypeMeaningYou set it 1message_idint32Which information message this is, as an id into the client's message table. (info message id) MATCH ON THIS, not on rendered text - it is stable across locales.never 2message_typeTextInformationTypeWhat kind of information line this is, and therefore which chat channel it lands in.never 3parametersrepeated stringOrdered substitution arguments for the localised template. Positional; their meaning depends on the message id. The client splits and inspects individual entries rather than treating them all as plain text.never Recovered with score 110, confidence 0.83, margin 110 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 3 of 3.
-
SystemMessageDisplayEvent
A system notification, sent as a message id plus arguments, optionally forcing a blocking display. Kind eventArea Game.ChatNamed by beta, gamemapping Like TextInformationEvent, this carries an id and arguments rather than text - but it is the SYSTEM notification path, and one flag on it matters a great deal. hang_up TRUE IS THE DISCONNECT WARNING. The client takes a different branch for it: before rendering anything it invokes an action on its connection service, and only then displays the message through the blocking path. In practice this is the "you are being disconnected" class of notice. A script that ignores it keeps playing into a session that is about to end. message_id is resolved against the same information-message table as TextInformationEvent.message_id but with a SYSTEM-MESSAGE NAMESPACE OFFSET ADDED FIRST. The raw ids from the two messages are not interchangeable. parameters are the positional substitution arguments, same rules as the information line. When you may send it Requires character_loaded observed Related messages Unsolicited - nothing you send causes this the server raises system notices on its own Fields #FieldTypeMeaningYou set it 2hang_upboolWhether this notice is on the disconnecting path. True makes the client call its connection service before displaying, and display through the blocking path.never 3parametersrepeated stringOrdered substitution arguments for the localised text. Positional; their meaning depends on the message id.never 4message_idint32Which system message this is. (info message id) Resolved after adding the system-message namespace offset - not the same id space as TextInformationEvent.message_id raw.never Recovered with score 220, confidence 0.95, margin 220 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 3 of 4.
-
Success
The successful branch of a character selection, carrying the character now being played. Kind structArea Game.Character.ManagementNamed by beta The branch that means you are in. It carries the Character the server accepted - which is authoritative, so take the character from here rather than assuming you got the one you asked for. The client wraps this character and hands it to its player-state service; that handoff is what actually enters play. Not sent on its own — it is only ever the success branch of CharacterSelectionEvent. inferred Used by CharacterSelectionEvent Fields #FieldTypeMeaningYou set it 1characterCharacterThe character the server selected for play. A Character. Authoritative - it is what you are now playing.never Recovered with score 150, confidence 0.96, margin 150 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
-
SubEntityInformation
One look attached to another: a mount carrying its rider, a pet beside its owner, an entity being lifted. Kind structArea Game.CommonNamed by beta The element of EntityLook.sub_entities. It nests an EntityLook of its own, SO THE STRUCTURE IS RECURSIVE - bound your traversal. binding_point_category says what the attachment IS (see BindingPointCategoryEnum); binding_point_index says which slot within that category. The category is the one worth reading: it is how you tell a rider from a pet from a carried entity. THE NUMBERS ARE REVERSED ON THIS BUILD - the look is 1, the index 3 and the category 4, with a decoy string sitting at 2. None of the three is read from its number. Not sent on its own — it is only ever an element of EntityLook.sub_entities. proven Used by EntityLook Fields #FieldTypeMeaningYou set it 1binding_point_categoryBindingPointCategoryEnumWhat kind of attachment this is. A BindingPointCategoryEnum value.never 2binding_point_indexint32Which slot within that category the sub-entity occupies.never 4sub_entity_lookEntityLookThe attached entity's own appearance. An EntityLook, which may carry sub-entities of its own.never Recovered with score 255, confidence 0.86, margin 255 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 3 of 4.
-
Status
The seven availability states a character can be in, from offline to solo. Kind enumArea Game.CommonNamed by beta The states carried by CharacterStatus. Every dumped build declares exactly these seven, numbered 0 to 6 in this order, so the numbering is the real wire contract rather than a declaration-order artefact. TWO OF THEM LOOK ALIKE AND ARE NOT. STATUS_IDLE is set by the CLIENT when it notices inactivity; STATUS_AFK is set deliberately by the PLAYER. Reporting AFK when you merely went quiet is a claim about intent that the real client does not make on its own. STATUS_PRIVATE and STATUS_SOLO both decline contact but differ in kind: the first is "do not disturb", the second declines party and group invitations specifically. Not sent on its own — an enum is never sent on its own. inferred Used by CharacterStatus Values ValueNumberMeaning STATUS_OFFLINE0Not connected. STATUS_AVAILABLE1Connected and open to contact. The normal state. STATUS_IDLE2Connected but inactive. Set by the CLIENT on noticing inactivity, not by the player. STATUS_AFK3Away from keyboard. Set DELIBERATELY by the player. Not the same as idle. STATUS_PRIVATE4Do not disturb: visible, but declining contact. STATUS_SOLO5Playing alone - declines party and group invitations. STATUS_UNKNOWN6Unknown or unrepresentable state. Recovered with score 125, confidence 0.94, margin 125 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 7 of 7.
-
StatedMapUpdateEvent
The state of every stated element on the map, sent when the character arrives. Kind eventArea Game.InteractiveNamed by beta The map's stated-element snapshot, and the baseline that StatedElementUpdatedEvent deltas apply on top of. IT IS A SNAPSHOT - REPLACE, DO NOT MERGE. It arrives once per map arrival. Read it together with InteractiveMapUpdateEvent: the two lists describe the same objects from different angles and join on StatedElement.element_id. Neither alone tells you both what a node IS and what state it is IN. When you may send it Requires context_ready inferred Related messages Unsolicited - nothing you send causes this the server sends the snapshot on map arrival Fields #FieldTypeMeaningYou set it 1stated_elementsrepeated StatedElementEvery stated element on the map. Element type StatedElement.never Recovered with score 130, confidence 0.88, margin 130 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 1.
-
StatedElementUpdatedEvent
One stated element changing state: a door opening, a lever thrown, a resource going from full to harvested. Kind eventArea Game.InteractiveNamed by beta The delta counterpart of StatedMapUpdateEvent. THIS IS THE MESSAGE THAT TELLS YOU A RESOURCE WAS TAKEN. Combined with InteractiveElementUpdatedEvent it is how a harvesting script learns that a node it was heading for is no longer worth walking to - including when somebody else took it. Match by StatedElement.element_id and replace the element in your model. When you may send it Requires context_ready inferred Related messages Unsolicited - nothing you send causes this the server publishes state changes as they happen Fields #FieldTypeMeaningYou set it 3stated_elementStatedElementThe element whose state changed. A whole StatedElement - replace your copy rather than patching it.never Recovered with score 130, confidence 0.88, margin 130 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 1 of 3.
-
StatedElement
One scenery object whose visual state the server drives: a door, a lever, a gate, a harvested stump. Kind structArea Game.InteractiveNamed by beta A map object whose STATE the server owns. Where InteractiveElement says what you may do with an object, this says what it currently looks like: open or closed, full or harvested. state IS AN OPAQUE PER-ELEMENT VALUE, NOT A SHARED ENUM. The client feeds it straight to its animation layer; what state 2 means depends entirely on the element type. Compare it against the previous value for the same element rather than assigning meanings to numbers. element_id is the SAME id as InteractiveElement.element_id and InteractiveUsedEvent.element_id. That is what makes the two element families join: the interactive record tells you a node is harvestable, this one tells you it is currently full. cell_id is a single map cell index. A DOFUS map has 560 cells, which is why the client can safely narrow this value to 16 bits. on_current_map FALSE MEANS DROP IT, as with interactive elements. Not sent on its own — it travels inside the stated snapshot or update events. inferred Used by MapComplementaryInformationEvent StatedElementUpdatedEvent StatedMapUpdateEvent Fields #FieldTypeMeaningYou set it 1on_current_mapboolWhether the element belongs to the map the character is standing on.never 2stateint32The visual state the server is putting the element into. Opaque and per-element-type: open/closed, full/harvested and so on. The client passes it straight to its animation layer.never 3element_idint32Identity of the stated element, shared with the interactive element of the same object. (interactive element id)never 4cell_idint32The map cell the element stands on. (map cell id) Range: 0-559 on a standard mapnever Recovered with score 100, confidence 0.95, margin 100 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 4 of 4.
-
SpellModifier
One per-spell modifier currently in effect on the character. Kind structArea Game.CommonNamed by beta One modifier applied to one spell - a range increase, a cost reduction and so on. ITS MEMBERS ARE NOT INDIVIDUALLY RECOVERED HERE and stand with their obfuscated names. The reference build declares a spell id, two enum selectors saying which property is modified and in what way, and two integer amounts distinguishing the contextual part from the equipment part - but nothing in the current build separates those roles behaviourally, so nothing is claimed. If you need spell modifiers, read them positionally against the reference layout and verify against the character sheet in game before relying on them. Not sent on its own — it is only ever an element of CharacterCharacteristics.spell_modifiers. inferred Used by CharacterCharacteristics No fields you may set. Recovered with score 100, confidence 0.91, margin 100 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 0 of 6.
-
ShortcutBarContentEvent
The full contents of one of the player's shortcut bars: spells, items, presets, emotes and cosmetics. Kind eventArea Game.InventoryNamed by beta, gamemapping One bar's worth of slots. It arrives once PER BAR during the connection burst, so expect several of these, distinguished by bar_type. IT IS ONE WHOLE BAR, NOT A SLOT UPDATE - REPLACE THAT BAR, DO NOT MERGE. A slot missing from the list is an empty slot. KEY YOUR MODEL BY bar_type, NOT BY ARRIVAL ORDER. Nothing guarantees the bars arrive in a fixed order, and a second message for the same bar replaces the first. shortcuts lists only the OCCUPIED slots; each carries its own slot index. Do not read these members by field number: the list and the bar selector are declared in the opposite order to the reference build, and have been since the earliest dumped 3.x build. When you may send it Requires character_loaded observed Related messages Unsolicited - nothing you send causes this sent once per bar during the connection burst, and again whenever the server resends a bar Fields #FieldTypeMeaningYou set it 1shortcutsrepeated type not documented yetEvery occupied slot of the bar. Only occupied slots appear; each carries its own index.never 2bar_typetype not documented yetWhich of the player's bars this content belongs to. Key your model by this, not by the order the messages arrive in.never Recovered with score 350, confidence 0.87, margin 350 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 2 of 2.
-
SetUpdateEvent
The current state of one equipment set: which of its pieces are worn and which bonuses that grants. Kind eventArea Game.InventoryNamed by beta, gamemapping Sent when the character's equipment changes in a way that affects a set bonus. IT IS THE WHOLE STATE OF ONE SET, NOT A DELTA - REPLACE, DO NOT MERGE. The message names a set and lists every piece currently worn from it together with every bonus currently active. Removing a piece produces a new message with a SHORTER list, not a removal instruction, so a script that merges never sees a bonus expire. Key your model by set_id. The client does exactly that: it uses the same value as a dictionary key for set state and as the subject of its own notification. effects are the bonuses granted at the CURRENT number of worn pieces, not the set's full table. They are ObjectEffect values and carry the same branch-on-the-oneof rule. The record declares additional members no dumped build reads. They stand with their obfuscated names. When you may send it Requires character_loaded inferred Related messages Unsolicited - nothing you send causes this the server pushes it when equipment changes; no request asks for it Fields #FieldTypeMeaningYou set it 1effectsrepeated ObjectEffectThe bonuses active at the current number of worn pieces. Element type ObjectEffect - branch on its oneof.never 3set_idint32Which equipment set this update is about. (set id)never 4objects_uidrepeated int32The unique handles of the set pieces currently worn. (item instance ids) These are ObjectItem.uid values, not template gids.never Recovered with score 310, confidence 0.99, margin 310 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 3 of 4.
-
ServerVerificationEvent
Server-initiated challenge that obliges the client to identify itself. Kind eventArea Game.Client.VerificationNamed by beta, gamemapping YOU MUST ANSWER THIS. The client's own handler ignores the event's contents entirely and replies with ClientIdRequest; nothing in the payload is needed to build the answer. The answer is not a constant. The real client generates fresh random handshake state, computes a modular exponentiation from it, and sends the result as a decimal string. A replayed or fixed value is not what a real client produces. When you may send it Requires transport_established observed Related messages You must then send ClientIdRequest proven — the client's handler computes the identifier and hands back the request Unsolicited - nothing you send causes this the server opens the verification exchange on its own Recovered with score 138, confidence 0.94, margin 138 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 0 of 0.
-
ServerType
Which ruleset family the connected game server runs: classical, arena, tournament, epic or seasonal. Kind enumArea Game.ConnectionNamed by beta Carried by ServerSettingsEvent. It tells you what KIND of server you are on, and that changes what your script may safely do. EPIC IS THE ONE THAT MATTERS. Epic servers have permanent death: a character that dies there is gone. A script that treats death as a recoverable state - walk to the phoenix, carry on - is wrong on those servers in a way that cannot be undone. Check this before writing any combat automation. TEMPORIS servers are seasonal and temporary; anything you build on one has a known expiry. Not sent on its own — an enum is never sent on its own. inferred Used by ServerSettingsEvent Values ValueNumberMeaning UNDEFINED0No recognised ruleset. CLASSICAL1A standard game server. KOLIZEUM2A dedicated Kolizeum arena server. TOURNAMENT3A tournament ruleset server. EPIC4An Epic ruleset server. PERMANENT DEATH. A character that dies here is gone for good. TEMPORIS5A temporary seasonal Temporis server. Recovered with score 100, confidence 0.96, margin 100 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 6 of 6.
-
ServerSettingsEvent
The server's environment: language, community, ruleset and account limits. Kind eventArea Game.ConnectionNamed by beta, gamemapping Pushed once, in the burst that follows a successful IdentificationRequest. Nothing requests it. Worth storing rather than ignoring: it tells you which ruleset the server runs and whether the account is restricted to one character at a time, both of which change what later requests are legal. When you may send it Requires authenticated observed Related messages Arrives after IdentificationRequest Fields #FieldTypeMeaningYou set it 1is_mono_accountboolWhether the account may only play one character at a time on this server.never 2arena_leave_ban_timeint32How long a player is barred from arena after leaving a match. (minutes)never 3has_free_autopilotboolWhether autopilot is available without a subscription here.never 4item_max_levelint32Highest item level this server allows.never 5game_typeServerTypeThe server's ruleset.never 6communityint32Community id the server belongs to.never 7languagestringThe server's language, e.g. fr.never Recovered with score 145, confidence 0.96, margin 145 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 7 of 7.
-
ServerSessionReadyEvent
The game session is ready to complete its cryptographic handshake. Kind eventArea Game.ConnectionNamed by beta, gamemapping Carries no payload. Arrival means the server is ready for the session handshake, and the client answers with ClientChallengeInitRequest. In a capture it closes the burst that follows acceptance of IdentificationRequest, and the answer goes out a few milliseconds later - notably as one of the rare CORRELATED requests, meaning the client allocates an envelope id for it and expects the reply routed back to that id. When you may send it Requires authenticated observed Related messages You must then send ClientChallengeInitRequest inferred — the client's handler derives the session value and sends the init request Arrives after IdentificationRequest No fields you may set. Recovered with score 160, confidence 0.92, margin 160 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 0 of 1.
-
ServerExperienceModifierEvent
The server's experience multipliers, sent once and kept for the session. Kind eventArea Game.ServerNamed by beta, gamemapping THE SERVER'S EXPERIENCE MULTIPLIERS, sent once and kept for the session. There is no request for it and no refresh - it arrives unprompted early on. THE NUMBERS ARE OFFSET BY 100 - MOSTLY Two of the values are percentages expressed as a multiplier over normal, and the client subtracts 100 from each before storing them. A wire value of 200 becomes a stored 100, i.e. "+100%". A third value is stored exactly as sent. If you read these raw and show them to a user you will overstate every bonus by 100 points. WHICH IS WHICH IS NOT SETTLED, AND THIS RECORD DOES NOT PRETEND OTHERWISE. The reference build declares this message with a SINGLE field; the current one carries three the client actually reads. Only one canonical member name exists, so none of the three is named here - they keep their obfuscated names rather than being given a label by guesswork. What IS established is the shape: two offset-by-100 values and one raw one, all three stored into played-character state and read back from there. A FOURTH DECLARED MEMBER IS PADDING and no dumped client has ever read it. If you need one of these values specifically, capture it against a server whose rates you know - the transform above tells you how to interpret what you see. When you may send it Requires context_ready observed Related messages Reply not yet recovered: the message carries three live members and only one canonical member name exists for it; the members are therefore left with their obfuscated names. See the notes. No fields you may set. Recovered with score 215, confidence 0.88, margin 215 over the runner-up. A margin close to the score means nothing else came near; a thin margin means a decoy nearly won. Members recovered: 0 of 4.