Events
253 archives dans cette catégorie
-
What the account is allowed to do: whether it may create a character, whether the tutorial is offered, and its staff role. Kind event · Area Game.Account Read-only session state describing what this account may do. Nothing is gated on having processed it - you record it and move on. can_create_new_character USED TO BE A BOOL AND IS NOW A THREE-STATE ENUM. Measured across the dumped builds: 3.5.3.1 bool, bool, Hierarchy 3.5.17.26 bool, bool, Hierarchy, int64 3.6.10.10 CanCreateNewChar
- summary: What the account is allowed to do: whether it may create a character, whether the tutorial is offered, and its staff role.
- area: Game.Account
- 83 vues
-
When the account's subscription ends, as Unix time in seconds; 0 means not subscribed. Kind event · Area Game.Account Tells the client when the account's subscription ends. WHAT TO DO WHEN YOU RECEIVE IT 1. READ subscription_end_date AS UNIX TIME IN SECONDS (UTC). The official client adds it as seconds to 1970-01-01 UTC and converts the result to local time. 2. TREAT 0 AS "NOT SUBSCRIBED". The client stores the earliest possible date instead of converting it. Zero is also th
- summary: When the account's subscription ends, as Unix time in seconds; 0 means not subscribed.
- area: Game.Account
- 70 vues
-
The account's permission flags for this session, as an opaque block of booleans (five; four from 3.7.1.0). Kind event · Area Game.Account Pushed during account setup. You receive it, record it, and never reply - nothing in the protocol is gated on having processed it. THE FLAGS ARE NOT INDIVIDUALLY RECOVERED and are deliberately left unnamed. There are five of them up to 3.6.12.16 and four from 3.7.1.0. Every line of evidence that names things elsewhere in this catalogue fails here: the unobf
- summary: The account's permission flags for this session, as an opaque block of booleans (five; four from 3.7.1.0).
- area: Game.Account
- 75 vues
-
An anomaly has just opened in a subarea. Kind event · Area Game.Anomaly An anomaly opened. The client turns it into a chat announcement carrying a clickable travel link to the place. IT ONLY REPORTS OPENINGS. There is no matching "closed" event on this message - closures come through AnomalyStateEvent with its open flag false. A script that tracks anomalies from this message alone accumulates anomalies that ended hours ago. It carries the subarea and nothing else. For the reward bonus and cl
- summary: An anomaly has just opened in a subarea.
- area: Game.Anomaly
- 78 vues
-
One subarea's anomaly is now open or closed, with the time it closes. Kind event · Area Game.Anomaly The delta for one subarea, and THE ONLY MESSAGE THAT REPORTS A CLOSURE - AnomalyOpenedEvent only ever announces openings. open false is how an anomaly ends. Apply it to the board you got from AnomalySubareaInformationRequest, keyed by subarea_id. closing_time tells you when the anomaly ends, so you can decide whether it is worth travelling to before it does. The message declares a second int
- summary: One subarea's anomaly is now open or closed, with the time it closes.
- area: Game.Anomaly
- 76 vues
-
The whole anomaly board: one row per subarea with its anomaly state, reward bonus and closing time. Kind event · Area Game.Anomaly The answer to AnomalySubareaInformationRequest. ROWS ARE SENT FOR SUBAREAS WITH NO ANOMALY TOO. The row's PRESENCE means nothing; AnomalySubareaInformation.has_anomaly is what says whether one is there. Filtering by presence gives you every subarea in the game. Each row is an AnomalySubareaInformation. Replace your board wholesale, then apply AnomalyStateEvent de
- summary: The whole anomaly board: one row per subarea with its anomaly state, reward bonus and closing time.
- area: Game.Anomaly
- 83 vues
-
The submitted ticket was accepted; the game session is open. Kind event · Area Game.Connection Answers IdentificationRequest on success. Carries no payload - arrival is the whole message. In a capture it opens a burst delivered in the same millisecond: TimeEvent, ServerSettingsEvent, OptionalFeaturesEvent, AccountCapabilitiesEvent, AccountRightsEvent, TrustStatusEvent and ServerSessionReadyEvent. Do not treat any of those as separately requested; they are pushed. When you may send it Requ
- summary: The submitted ticket was accepted; the game session is open.
- area: Game.Connection
- 123 vues
-
The submitted ticket was rejected; the game session does not open. Kind event · Area Game.Connection Answers IdentificationRequest on failure. Carries no reason - refusal is the whole message, so there is nothing to branch on beyond the fact of it. The usual causes are a ticket that was already consumed, has expired, or was issued for a different server than the one you connected to. Recovering means going back to the login-server exchange for a fresh ticket, not retrying this message. When
- summary: The submitted ticket was rejected; the game session does not open.
- area: Game.Connection
- 73 vues
-
A fresh API key for the in-client shop back end, answering the token request. Kind event · Area Game.Bak The reply to BakApiTokenRequest. NEVER PUSHED UNSOLICITED: no request, no key. Its arrival drives the client's whole key lifecycle. On receiving it the service stores the key, CLEARS the in-flight latch that the send routine set - releasing the next request - and arms a one-hour timer for the next refresh. If you reproduce the request's timer, reproduce this side too: without clearing the
- summary: A fresh API key for the in-client shop back end, answering the token request.
- area: Game.Bak
- 76 vues
-
A shop token for the in-client shop back end. In practice it never arrives. Kind event · Area Game.Bak IN PRACTICE THIS NEVER ARRIVES, AND THAT IS THE MOST USEFUL THING TO KNOW ABOUT IT. The shop-token request that would provoke it has NO CLIENT WRITER in any dumped build: the message type exists, but nothing in the client ever constructs or sends it. Since this event is a reply and the client never asks, the server has no occasion to send it. A live capture bears that out - the sibling BakAp
- summary: A shop token for the in-client shop back end. In practice it never arrives.
- area: Game.Bak
- 71 vues
-
Empty server poll asking the client to report its measured latency. Kind event · Area Game.Basic Carries no payload - the message IS the question. Answer it with BasicLatencyStatsRequest carrying a latency in milliseconds. ANSWER IT. A capture shows the real client replying within milliseconds. A client that receives these polls and never answers is trivially distinguishable from a real one. It arrives in the same frame as SequenceNumberEvent, and the two are answered independently a few mil
- summary: Empty server poll asking the client to report its measured latency.
- area: Game.Basic
- 76 vues
-
Every bonus currently in force, as a full replacement list. Kind event · Area Game.Bonus This name is not Ankama's. It was chosen for this documentation from proven client behaviour, and is a label rather than protocol documentation. THE COMPLETE SET, EVERY TIME. Overwrite your bonus state with this list rather than merging into it - the client throws its cache away and rebuilds it from scratch on every arrival. WHAT A BONUS IS Each entry is an amount plus the kind of bonus it applies to: e
- summary: Every bonus currently in force, as a full replacement list.
- area: Game.Bonus
- 78 vues
-
One chat channel was enabled or disabled for the player. Kind event · Area Game.Chat The single-channel delta: set that channel's bit when enable is true, clear it when false. Nothing else in the payload is used by the client. It arrives both on its own and as part of the volley that follows a community change - see SetCommunityChannelRequest. Keep one channel mask and apply this to it. The bulk counterpart is ChatChannelsEnabledEvent, and the two can disagree if you apply them out of order
- summary: One chat channel was enabled or disabled for the player.
- area: Game.Chat
- 72 vues
-
The colour palettes your character owns, and how many palette slots exist. Kind event · Area Game.Cosmetic YOUR COLLECTION OF COLOUR PALETTES. Each palette is a set of six colours you can apply to your character; this message lists the ones you own and states how many palette slots your account has. WHEN IT ARRIVES Unprompted, once the game context is up, and again whenever the collection changes. Treat it as a REPLACEMENT: the client discards its previous list and rebuilds it from what arri
- summary: The colour palettes your character owns, and how many palette slots exist.
- area: Game.Cosmetic
- 92 vues
-
The played character's full characteristic sheet, sent as a complete replacement. Kind event · Area Game.Character The character sheet: level progression, kamas, alignment, every characteristic and the current spell modifiers. IT REPLACES, IT DOES NOT PATCH. The client throws away its cached characteristic state and rebuilds it from this message. Do the same - a merge leaves you holding modifiers that have expired. IT ALSO CARRIES KAMAS, AND SO DOES InventoryContentEvent. The client treats t
- summary: The played character's full characteristic sheet, sent as a complete replacement.
- area: Game.Character
- 79 vues
-
Says whether the character was created, and when the name was the problem, exactly what was wrong with it. Kind event · Area Game.Character.Management Answers CharacterCreationRequest - success and every kind of refusal arrive through this one message. READ THE RESULT FIRST, THE REASON SECOND TWO MEMBERS, AND ONLY ONE OF THEM ALWAYS MEANS SOMETHING. The result says what happened. The reason describes the NAME, and it is meaningful only when the result says the name was the problem - on every
- summary: Says whether the character was created, and when the name was the problem, exactly what was wrong with it.
- area: Game.Character.Management
- 80 vues
-
The server naming the character about to be destroyed and stating whether a secret answer is required. Kind event · Area Game.Character STEP 2 OF 3. Read need_secret_answer before doing anything else: it decides whether CharacterDeletionRequest must carry a hash, and it is per character. character_id IS GONE FROM THIS MESSAGE. The reference build declared one and NO dumped build carries it - the client already knows which character it asked about. Do not expect it and do not treat its absence
- summary: The server naming the character about to be destroyed and stating whether a secret answer is required.
- area: Game.Character
- 80 vues
-
Experience the played character just earned, on a kill, quest turn-in, harvest or craft. Kind event · Area Game.Character A gain notification, so the client can animate the experience bar. It is a DELTA, not a total - the totals live in CharacterCharacteristics. THE CURRENT MESSAGE CARRIES ONLY THE CHARACTER'S OWN EXPERIENCE. The reference build declared mount and guild experience alongside it and the current build does not: that is a real schema reduction, confirmed by the client's own local
- summary: Experience the played character just earned, on a kill, quest turn-in, harvest or craft.
- area: Game.Character
- 70 vues
-
Your character reached a new level; this is that level. Kind event · Area Game.Character Your character just levelled up. The value is the NEW level, not an increment. WHAT THE CLIENT DOES WITH IT. It stores the new level on the played character, works out the rewards unlocked for your class at that level, and opens the level-up window. IF YOU TRACK LEVEL YOURSELF, overwrite it with this value. Experience figures arrive separately in CharacterCharacteristicsEvent and CharacterExperienceGainE
- summary: Your character reached a new level; this is that level.
- area: Game.Character
- 73 vues
-
Whether the played character is alive, dead or a phantom, and where its phoenix statue stands. Kind event · Area Game.Character THE MESSAGE THAT TELLS YOU YOU ARE DEAD. Any script that fights needs to handle it: after a death the character is still connected, still receives events, and can still be told to walk - it just cannot do anything useful. It arrives once during the connection state burst, so the first one you see is not a death; it is the current state. Every later one is a real tran
- summary: Whether the played character is alive, dead or a phantom, and where its phoenix statue stands.
- area: Game.Character
- 77 vues
-
The account's characters on this server, with everything needed to select one. Kind event · Area Game.Character.Management Answers CharacterListRequest. THIS IS THE ONLY SOURCE OF A CHARACTER ID. The id you put in CharacterSelectionRequest must come from here - an id from another account, another server, or an earlier session is rejected. Each entry carries the character's look and level as well as its id, so the list is enough to choose without any further request. When you may send it
- summary: The account's characters on this server, with everything needed to select one.
- area: Game.Character.Management
- 81 vues
-
The selected character has finished loading; the world-entry burst starts here. Kind event · Area Game.Context Carries no payload. Arrival is the server's "you are in" signal, closing the long inbound burst that follows CharacterSelectionRequest. IT DOES NOT CREATE THE GAME CONTEXT. That is ContextCreationRequest, which the real client sends about 1.4 seconds later as step 5 of a seven-step burst: sequence number, the contact and warning settings, the guild requests, context creation, then th
- summary: The selected character has finished loading; the world-entry burst starts here.
- area: Game.Context
- 89 vues
-
A server-generated character name proposal. Kind event · Area Game.Character The answer to CharacterNameSuggestionRequest: one proposed name, which the client offers as the player's next candidate. IT IS A PROPOSAL, NOT A RESERVATION. Nothing is held for you - the name can be taken between the suggestion and your creation request. When you may send it Requires authenticated observed Related messages Arrives after CharacterNameSuggestionRequest Fields #FieldTypeMeaningYou set it 1su
- summary: A server-generated character name proposal.
- area: Game.Character
- 73 vues
-
Whether the selection was accepted, and which character was entered. Kind event · Area Game.Character.Management Answers CharacterSelectionRequest with one of two outcomes, carried in a oneof: success with the selected character, or an error with no payload. CHECK WHICH BRANCH IS SET BEFORE READING EITHER. The failure branch is empty, so a client that reads the success branch unconditionally sees a zeroed character rather than an error. When you may send it Requires authenticated observed
- summary: Whether the selection was accepted, and which character was entered.
- area: Game.Character.Management
- 80 vues
-
Somebody said something on a chat channel, including your own lines echoed back. Kind event · Area Game.Chat Everything said on every channel you are subscribed to, including your own lines coming back after ChatChannelMessageRequest. A whisper sent TO you also arrives here, with channel Channel.PRIVATE. Your own whisper does not: it comes back as ChatPrivateCopyMessageEvent. TWO SENDER IDS, TWO DIFFERENT PURPOSES. sender_character_id is the CHARACTER speaking - use it to address them or ope
- summary: Somebody said something on a chat channel, including your own lines echoed back.
- area: Game.Chat
- 95 vues