diff --git a/assets/search.js b/assets/search.js index 5fa2df7..bc564ae 100644 --- a/assets/search.js +++ b/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/classes/Client.html b/classes/Client.html index fc618e0..ece5efb 100644 --- a/classes/Client.html +++ b/classes/Client.html @@ -1,6 +1,6 @@ -
Request the server update the kinds of item received events this client should receive.
New item handling flags. See API.itemsHandlingFlags for more information.
Update the client status for the current player. For a list of known client statuses, see clientStatuses.
+Update the client status for the current player. For a list of known client statuses, see clientStatuses.
The status to change to.
The server will automatically set the player's status to clientStatuses.disconnected when all @@ -98,7 +98,7 @@
Managers data packages metadata and exposes name lookup methods.
-Managers data packages metadata and exposes name lookup methods.
+import fs from "node:fs";
import { Client } from "archipelago.js";
// ... misc client code (connecting and fetching data package).
// Save data package to a local file.
const data = client.package.exportPackage();
fs.writeFileSync("path/to/cache/datapackage_cache.json", JSON.stringify(data), "utf8");
-Fetches and returns the DataPackage from the server, if the games are not locally cached or checksums +
Fetches and returns the DataPackage from the server, if the games are not locally cached or checksums do not match.
A list of game packages to fetch. If omitted, will fetch all available game packages from the current room.
@@ -21,10 +21,10 @@Returns the package metadata helper object for a specified game. If game package does not exist in cache, returns +
Import a DataPackage object to prepopulate local cache.
+Import a DataPackage object to prepopulate local cache.
The package to import.
It is recommended to export/import any data packages ahead of time to reduce unnecessary calls to DataPackageManager.fetchPackage and reduce connection startup time and lighten network overhead. See @@ -35,24 +35,24 @@
<script src="archipelago.js" type="module">
import { Client } from "archipelago.js";
const data = localStorage.getItem("datapackage_cache");
const client = new Client();
client.package.importPackage(JSON.parse(data));
await client.login("wss://archipelago.gg:38281", "Phar", "Clique");
</script>
-Lookup an item name by its integer id.
The name of the game this item is associated with.
The id of the item to name lookup.
If true
, returns "Unknown Item {id}"
instead of undefined
, if id does not exist in package.
Defaults to true
, if omitted.
Lookup an item name by its integer id.
+Lookup an item name by its integer id.
The name of the game this item is associated with.
The id of the item to name lookup.
If true
, returns "Unknown Item {id}"
instead of undefined
, if id does not exist in package.
Defaults to true
, if omitted.
Lookup a location name by its integer id.
The name of the game this location is associated with.
The id of the location to name lookup.
If true
, returns "Unknown Location {id}"
instead of undefined
, if id does not exist in
package. Defaults to true
, if omitted.
Lookup a location name by its integer id.
+Lookup a location name by its integer id.
The name of the game this location is associated with.
The id of the location to name lookup.
If true
, returns "Unknown Location {id}"
instead of undefined
, if id does not exist in
package. Defaults to true
, if omitted.
Manages communication between the data storage API and notifies subscribers of changes to storage updates.
-Manages communication between the data storage API and notifies subscribers of changes to storage updates.
+Returns a copy of all currently monitored keys.
-Fetches provided keys from data storage.
+Fetches provided keys from data storage.
A list of keys to be fetched.
Adds keys to local cache and request the server to update client when changes are made to speed up subsequent lookups. For one-off adhoc lookups, should be omitted.
An object containing all current values for each key requested.
Gets a single provided key from data storage.
The keys to be fetched.
Adds key to local cache and request the server to update client when changes are made to speed up subsequent lookups. For one-off adhoc lookups, should be omitted.
The current value for this key.
Add a list of keys to be monitored for changes and fire a callback when changes are detected.
+Add a list of keys to be monitored for changes and fire a callback when changes are detected.
A list of keys to fetch and watch for changes.
A callback to fire whenever one of these keys change.
An object containing all current values for each key requested.
@@ -32,7 +32,7 @@Create a new transaction for setting a data storage key by returning an IntermediateDataOperation. To +
Create a new transaction for setting a data storage key by returning an IntermediateDataOperation. To
perform certain operations, just chain additional methods until finished, then call prepare()
.
The key to manipulate.
The default value to be used if key does not exist.
@@ -40,4 +40,4 @@Manages DeathLink mechanics for clients that choose to opt in to the mechanic.
-Manages DeathLink mechanics for clients that choose to opt in to the mechanic.
+Returns true
if this client is participating in the DeathLink mechanic.
Removes an existing event listener.
+Removes an existing event listener.
The event name associated with this listener to remove.
The callback function to remove.
Rest
...args: DeathEvents[Event]This object.
-Add an event listener for a specific event.
+Add an event listener for a specific event.
The event name to listen for.
The callback function to fire when this event is received.
Rest
...args: DeathEvents[Event]This object.
-If DeathLink is enabled, sends a DeathLink to all DeathLink enabled players, otherwise this method does nothing.
+If DeathLink is enabled, sends a DeathLink to all DeathLink enabled players, otherwise this method does nothing.
The name of the player who died. Can be a slot name, but could also be a name from within a multiplayer game.
Optional
cause: stringOptional text explaining the cause of death. When provided, this should include the player's name.
(e.g., Phar drowned in a vat of kittens.
)
DeathLinks sent from this client will not fire a DeathEvents.deathReceived event to avoid an infinite feedback loop of deaths.
-Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +
Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments dispatched with the event.
The event name to listen for.
An optional predicate to check on incoming events to validate if the correct event has been received. If omitted, will return immediately on next event type received.
-Rest
...args: DeathEvents[Event]Rest
...args: DeathEvents[Event]Abstract
An abstract class for managers that offer an event-based API.
+Abstract
An abstract class for managers that offer an event-based API.
This object.
-Add an event listener for a specific event.
+Add an event listener for a specific event.
This object.
-Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +
Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments dispatched with the event.
The event name to listen for.
An optional predicate to check on incoming events to validate if the correct event has been received. If omitted, will return immediately on next event type received.
-An abstraction of NetworkHint that exposes additional helper methods and accessors received hint data.
-An abstraction of NetworkHint that exposes additional helper methods and accessors received hint data.
+Returns true
if this item has been found.
An intermediate abstract object holding an array of data storage operations to be performed in order by the server.
-An intermediate abstract object holding an array of data storage operations to be performed in order by the server.
+Adds value
to the current value of the key, if both the current value and value
are arrays then value
will
be appended to the current value.
A value for the operation to apply against the current data storage value.
-Applies a bitwise AND to the current value of the key with value
.
Applies a bitwise AND to the current value of the key with value
.
A value for the operation to apply against the current data storage value.
-Rounds up the current value to the nearest integer.
-Commit the current operations to data store and return a Promise with the updated key, once fulfilled.
+Rounds up the current value to the nearest integer.
+Commit the current operations to data store and return a Promise with the updated key, once fulfilled.
If true
, a promise will be returned with the new value. Otherwise, immediately resolves.
Commit the current operations to data store.
-If the key has no value yet, sets the current value of the key to default
.
Rounds down the current value to the nearest integer.
-Applies a bitwise left-shift to the current value of the key by value
.
Commit the current operations to data store.
+If the key has no value yet, sets the current value of the key to default
.
Rounds down the current value to the nearest integer.
+Applies a bitwise left-shift to the current value of the key by value
.
A value for the operation to apply against the current data storage value.
-Sets the current value of the key to value
if value
is bigger.
Sets the current value of the key to value
if value
is bigger.
A value for the operation to apply against the current data storage value.
-Sets the current value of the key to value
if value
is bigger.
Sets the current value of the key to value
if value
is bigger.
A value for the operation to apply against the current data storage value.
-Multiplies the current value of the key by value
.
Multiplies the current value of the key by value
.
A value for the operation to apply against the current data storage value.
-Applies a bitwise OR to the current value of the key with value.
+Applies a bitwise OR to the current value of the key with value.
A value for the operation to apply against the current data storage value.
-List or Dict only: for lists
it will remove the index of the value
given. For dicts
it removes the element
+
List or Dict only: for lists
it will remove the index of the value
given. For dicts
it removes the element
with the specified key of value
.
A value for the operation to apply against the current data storage value.
-Multiplies the current value of the key to the power of value
.
Multiplies the current value of the key to the power of value
.
A value for the operation to apply against the current data storage value.
-Sets the current value of the key to the remainder after division by value
.
Sets the current value of the key to the remainder after division by value
.
A value for the operation to apply against the current data storage value.
-List only: removes the first instance of value
found in the list.
List only: removes the first instance of value
found in the list.
A value for the operation to apply against the current data storage value.
-Sets the current value of the key to value
.
Sets the current value of the key to value
.
A value for the operation to apply against the current data storage value.
-Applies a bitwise right-shift to the current value of the key by value
.
Applies a bitwise right-shift to the current value of the key by value
.
A value for the operation to apply against the current data storage value.
-Dict only: Updates the dictionary with the specified elements given in value
creating new keys, or updating old
+
Dict only: Updates the dictionary with the specified elements given in value
creating new keys, or updating old
ones if they previously existed.
A value for the operation to apply against the current data storage value.
-Applies a bitwise XOR to the current value of the key with value.
+Applies a bitwise XOR to the current value of the key with value.
A value for the operation to apply against the current data storage value.
-An abstraction of NetworkItem that exposes additional helper methods and accessors for this item data.
-An abstraction of NetworkItem that exposes additional helper methods and accessors for this item data.
+Returns true
if this item has no special flags.
Returns the item classification bitflags for this item.
-Returns the game name for this item.
-Returns the game name for the location this item was contained.
-Returns the id of the location where this item was contained.
-Returns the name of the location where this item was contained.
-Returns the name of this item.
-Returns true
if this item is flagged as progression.
Returns true
if this item is flagged as a trap.
Returns true
if this item is flagged as useful.
Returns the item classification bitflags for this item.
+Returns the game name for this item.
+Returns the integer id of this item.
+Returns the game name for the location this item was contained.
+Returns the id of the location where this item was contained.
+Returns the name of the location where this item was contained.
+Returns the name of this item.
+Returns true
if this item is flagged as progression.
Returns true
if this item is flagged as a trap.
Returns true
if this item is flagged as useful.
Manages tracking and receiving of all received items and hints.
-Manages tracking and receiving of all received items and hints.
+Return the number of items received.
-Returns a copy of all hints for this player.
+Returns a copy of all hints for this player.
Hints may take a moment to populate after establishing connection to server, as it needs to wait for data storage to fetch all current hints. If you need hints right after connecting, listen for the ItemEvents.hintsInitialized event.
-Removes an existing event listener.
+Removes an existing event listener.
The event name associated with this listener to remove.
The callback function to remove.
Rest
...args: ItemEvents[Event]This object.
-Add an event listener for a specific event.
+Add an event listener for a specific event.
The event name to listen for.
The callback function to fire when this event is received.
Rest
...args: ItemEvents[Event]This object.
-Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +
Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments dispatched with the event.
The event name to listen for.
An optional predicate to check on incoming events to validate if the correct event has been received. If omitted, will return immediately on next event type received.
-Rest
...args: ItemEvents[Event]Rest
...args: ItemEvents[Event]Manages and stores PrintJSONPacket messages, notifies subscribers of new messages, and exposes helper methods +
Manages and stores PrintJSONPacket messages, notifies subscribers of new messages, and exposes helper methods to interact with the chat system.
-Returns all current chat messages that are logged.
If the messages length is greater than ClientOptions.maximumMessages, the oldest messages are spliced out.
-Sends a chat message to the server.
+Removes an existing event listener.
+Removes an existing event listener.
The event name associated with this listener to remove.
The callback function to remove.
Rest
...args: MessageEvents[Event]This object.
-Add an event listener for a specific event.
+Add an event listener for a specific event.
The event name to listen for.
The callback function to fire when this event is received.
Rest
...args: MessageEvents[Event]This object.
-Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +
Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments dispatched with the event.
The event name to listen for.
An optional predicate to check on incoming events to validate if the correct event has been received. If omitted, will return immediately on next event type received.
-Rest
...args: MessageEvents[Event]Rest
...args: MessageEvents[Event]An abstraction of a GamePackage object which includes additional helper methods for interacting with a game's +
An abstraction of a GamePackage object which includes additional helper methods for interacting with a game's package.
-Readonly
checksumThe SHA256 hexadecimal string representation of this game package.
-Readonly
gameThe name of the game this game package is for.
-Readonly
itemA record of names to ids for all items in this game package.
-Readonly
locationA record of names to ids for all locations in this game package.
-Readonly
reverseA record of ids to names for all items in this game package.
-Readonly
reverseA record of ids to names for all locations in this game package.
-Returns a network-safe GamePackage that can be cached and preloaded ahead of time to reduce network load.
-Readonly
gameThe name of the game this game package is for.
+Readonly
itemA record of names to ids for all items in this game package.
+Readonly
locationA record of names to ids for all locations in this game package.
+Readonly
reverseA record of ids to names for all items in this game package.
+Readonly
reverseA record of ids to names for all locations in this game package.
+Returns a network-safe GamePackage that can be cached and preloaded ahead of time to reduce network load.
+A collection of metadata and helper methods for interacting with a particular player.
-A collection of metadata and helper methods for interacting with a particular player.
+Returns the current nickname for this player or the slot name if not set.
-Returns the game this slot is playing.
-Returns the slot name for this player slot.
-Returns this slot's id.
-Returns the team id this player is a member of.
-Returns the type of slot this player is. See slotTypes for more information.
-Returns the game this slot is playing.
+Returns the slot name for this player slot.
+Returns this slot's id.
+Returns the team id this player is a member of.
+Returns the type of slot this player is. See slotTypes for more information.
+Fetch this player's slot data over the network.
Returns this slot's current status. See clientStatuses for more information.
-Returns this slot's current status. See clientStatuses for more information.
+Manages tracking and updating all players in the room session.
-Manages tracking and updating all players in the room session.
+Returns a record of basic information for each slot.
+Returns a record of basic information for each slot.
Slot information is shared across each team. For accessing player data, see PlayersManager.
-Returns a 2D array of player metadata ranked by team number, then slot number.
+Attempt to find a player by their team or slot name.
+Attempt to find a player by their team or slot name.
The team id associated with the searched player.
The slot id associated with the searched player.
The player's metadata or undefined
if not found.
Removes an existing event listener.
+Removes an existing event listener.
The event name associated with this listener to remove.
The callback function to remove.
Rest
...args: PlayerEvents[Event]This object.
-Add an event listener for a specific event.
+Add an event listener for a specific event.
The event name to listen for.
The callback function to fire when this event is received.
Rest
...args: PlayerEvents[Event]This object.
-Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +
Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments dispatched with the event.
The event name to listen for.
An optional predicate to check on incoming events to validate if the correct event has been received. If omitted, will return immediately on next event type received.
-Rest
...args: PlayerEvents[Event]Rest
...args: PlayerEvents[Event]Managers room state information, notifies subscribers of changes, and exposes helper methods for interacting with the +
Managers room state information, notifies subscribers of changes, and exposes helper methods for interacting with the room.
-Returns a list of all location ids for this slot.
-Returns a list of location ids that have been checked.
-Returns the list of games present in the current room.
-Returns the version of Archipelago the seed was generated from.
+Returns a list of location ids that have been checked.
+Returns the list of games present in the current room.
+Returns the version of Archipelago the seed was generated from.
Returns the amount of hint points this player needs to request a hint.
-Returns the percentage of locations that need to be checked to have enough points to hint from the server.
-Returns the amount of hint points this player currently has.
-Returns the amount of hint points received per location checked.
-Returns a list of location ids that have not been checked.
-Returns true
if the room requires a password to join.
Returns the current room's command permission bitflags.
-Experimental
Returns if this seed was generated with race mode enabled (to be used to obscure unnecessary details to make +
Returns the amount of hint points this player needs to request a hint.
+Returns the percentage of locations that need to be checked to have enough points to hint from the server.
+Returns the amount of hint points this player currently has.
+Returns the amount of hint points received per location checked.
+Returns a list of location ids that have not been checked.
+Returns true
if the room requires a password to join.
Returns the current room's command permission bitflags.
+Experimental
Returns if this seed was generated with race mode enabled (to be used to obscure unnecessary details to make clients race legal depending on rules).
-Get the seed name for this room.
+Get the seed name for this room.
Returns the version of Archipelago the server is currently running.
+Returns the version of Archipelago the server is currently running.
Returns a list of tags the server is currently capable of.
-Removes an existing event listener.
+Returns a list of tags the server is currently capable of.
+Removes an existing event listener.
The event name associated with this listener to remove.
The callback function to remove.
Rest
...args: RoomStateEvents[Event]This object.
-Add an event listener for a specific event.
+Add an event listener for a specific event.
The event name to listen for.
The callback function to fire when this event is received.
Rest
...args: RoomStateEvents[Event]This object.
-Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +
Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments dispatched with the event.
The event name to listen for.
An optional predicate to check on incoming events to validate if the correct event has been received. If omitted, will return immediately on next event type received.
-Rest
...args: RoomStateEvents[Event]Rest
...args: RoomStateEvents[Event]Manages socket-level communication and exposes helper methods/events for interacting with the Archipelago API +
Manages socket-level communication and exposes helper methods/events for interacting with the Archipelago API directly.
-Returns true
if currently connected to a websocket server.
Returns the current connection's URL or an empty string, if not connected.
-Establish a connection to an Archipelago server before authenticating; useful if there might be tasked that are +
Returns the current connection's URL or an empty string, if not connected.
+Establish a connection to an Archipelago server before authenticating; useful if there might be tasked that are needed to be performed before authenticating, but after connecting (e.g., DataPackage).
The url of the server, including the protocol (e.g., wss://archipelago.gg:38281
).
The RoomInfoPacket received on initial connection.
Removes an existing event listener.
+Removes an existing event listener.
The event name associated with this listener to remove.
The callback function to remove.
Rest
...args: SocketEvents[Event]This object.
-Add an event listener for a specific event.
+Add an event listener for a specific event.
The event name to listen for.
The callback function to fire when this event is received.
Rest
...args: SocketEvents[Event]This object.
-Send a list of raw client packets to the server.
+Send a list of raw client packets to the server.
Rest
...packets: ClientPacket[]List of client packets to send.
This SocketManager.
Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +
Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments dispatched with the event.
The event name to listen for.
An optional predicate to check on incoming events to validate if the correct event has been received. If omitted, will return immediately on next event type received.
-Rest
...args: SocketEvents[Event]Rest
...args: SocketEvents[Event]+
Currently, there are no automated tests for this library, so all testing in browser, Node, Deno, and Bun are done manually. This is certainly one area that can be expanded upon.
Alternatively, expanding upon the documentation (either through the JSDoc or tutorial-like guides) would be appreciated.
-Sent to relevant clients to broadcast the result of an admin command.
+Sent to relevant clients to broadcast the result of an admin command.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent by the client to be broadcast from the server to all connected clients that match any one of the filter +
Sent by the client to be broadcast from the server to all connected clients that match any one of the filter arguments.
Readonly
cmdReadonly
dataAny data you want to send.
-Optional
Readonly
gamesOptional. Games that should receive this message.
-Optional
Readonly
slotsOptional. Player ids that should receive this message.
-Optional
Readonly
tagsOptional. Client tags that should receive this message.
-Readonly
cmdReadonly
dataAny data you want to send.
+Optional
Readonly
gamesOptional. Games that should receive this message.
+Optional
Readonly
slotsOptional. Player ids that should receive this message.
+Optional
Readonly
tagsOptional. Client tags that should receive this message.
+Sent to clients after a client requested this message be sent to them, more info in the BouncePacket.
-Sent to clients after a client requested this message be sent to them, more info in the BouncePacket.
+Readonly
cmdReadonly
dataA verbatim copy of the data in the BouncePacket package.
-Optional
Readonly
gamesOptional. Game names this message is targeting.
-Optional
Readonly
slotsOptional. Player slot IDs that this message is targeting.
-Optional
Readonly
tagsOptional. Client tags this message is targeting.
-Readonly
cmdReadonly
dataA verbatim copy of the data in the BouncePacket package.
+Optional
Readonly
gamesOptional. Game names this message is targeting.
+Optional
Readonly
slotsOptional. Player slot IDs that this message is targeting.
+Optional
Readonly
tagsOptional. Client tags this message is targeting.
+Sent to clients to broadcast a normal chat message.
+Sent to clients to broadcast a normal chat message.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
messageOriginal chat message without sender prefix.
-Readonly
slotSlot of the triggering player.
-Readonly
teamTeam of the triggering player.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
messageOriginal chat message without sender prefix.
+Readonly
slotSlot of the triggering player.
+Readonly
teamTeam of the triggering player.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to clients to broadcast a player has collected all their remaining items from the multi-world.
+Sent to clients to broadcast a player has collected all their remaining items from the multi-world.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
slotSlot of the triggering player.
-Readonly
teamTeam of the triggering player.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
slotSlot of the triggering player.
+Readonly
teamTeam of the triggering player.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to relevant clients to broadcast the result of a chat command.
+Sent to relevant clients to broadcast the result of a chat command.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent by the client to authenticate a connection to an Archipelago session.
-Sent by the client to authenticate a connection to an Archipelago session.
+Readonly
cmdReadonly
gameThe name of the game the client is playing.
-Readonly
items_Bit flags configuring which items should be sent by the server. See itemsHandlingFlags for information +
Readonly
cmdReadonly
gameThe name of the game the client is playing.
+Readonly
items_Bit flags configuring which items should be sent by the server. See itemsHandlingFlags for information on individual flags.
-Readonly
nameThe slot name for this client.
-Readonly
passwordIf the game session requires a password, it should be passed here.
-Readonly
slot_If true
, the ConnectedPacket will contain slot data.
Readonly
tagsDenotes special features or capabilities that the sender is currently capable of.
-Readonly
uuidUnique identifier for player client.
-Readonly
versionAn object representing the minimum Archipelago server version this client supports.
-Readonly
nameThe slot name for this client.
+Readonly
passwordIf the game session requires a password, it should be passed here.
+Readonly
slot_If true
, the ConnectedPacket will contain slot data.
Readonly
tagsDenotes special features or capabilities that the sender is currently capable of.
+Readonly
uuidUnique identifier for player client.
+Readonly
versionAn object representing the minimum Archipelago server version this client supports.
+Update arguments from the Connect packet, currently only updating tags
and items_handling
is supported.
Update arguments from the Connect packet, currently only updating tags
and items_handling
is supported.
Readonly
cmdReadonly
items_Bit flags configuring which items should be sent by the server. See itemsHandlingFlags for additional +
Readonly
cmdReadonly
items_Bit flags configuring which items should be sent by the server. See itemsHandlingFlags for additional information.
-Readonly
tagsDenotes special features or capabilities that the sender is currently capable of.
-Readonly
tagsDenotes special features or capabilities that the sender is currently capable of.
+Sent to clients when the connection handshake is successfully completed.
-Sent to clients when the connection handshake is successfully completed.
+Readonly
checked_Contains integer ids of all locations that have been checked. Useful for trackers, among other things. Location ids are valid in the range of -2^53^ to +(2^53)-1 (inclusive), with negative values and zero reserved for Archipelago.
-Readonly
cmdReadonly
hint_Number of hint points that the current player has.
-Readonly
missing_Contains integer ids of remaining locations that need to be checked. Useful for trackers, among other things.
-Readonly
playersList denoting other players in the multi-world, whether connected or not.
-Readonly
slotYour slot number on your team. See NetworkPlayer for more info on the slot number.
-Readonly
slot_Contains an object of slot related data, which differs per slot. If slot data was not requested in the +
Readonly
cmdReadonly
hint_Number of hint points that the current player has.
+Readonly
missing_Contains integer ids of remaining locations that need to be checked. Useful for trackers, among other things.
+Readonly
playersList denoting other players in the multi-world, whether connected or not.
+Readonly
slotYour slot number on your team. See NetworkPlayer for more info on the slot number.
+Readonly
slot_Contains an object of slot related data, which differs per slot. If slot data was not requested in the ConnectPacket, this value be an empty object.
-Readonly
slot_Object of each slot with their NetworkSlot information.
-Readonly
teamYour team number. See NetworkPlayer for more info on team number.
-Readonly
slot_Object of each slot with their NetworkSlot information.
+Readonly
teamYour team number. See NetworkPlayer for more info on team number.
+Sent to clients when the server refuses connection. This is sent during the initial connection handshake.
-Sent to clients when the server refuses connection. This is sent during the initial connection handshake.
+Readonly
cmdOptional
Readonly
errorsOptional. When provided, should contain one or more ConnectionError values. See ConnectionError +
Readonly
cmdOptional
Readonly
errorsOptional. When provided, should contain one or more ConnectionError values. See ConnectionError for additional information on what each error means.
-Sent to clients to broadcast a countdown message, usually for counting down the start of a game.
+Sent to clients to broadcast a countdown message, usually for counting down the start of a game.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
countdownAmount of seconds remaining on the countdown.
-Readonly
dataAll the textual metadata for this packet.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
countdownAmount of seconds remaining on the countdown.
+Readonly
dataAll the textual metadata for this packet.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to clients to provide what is known as a 'data package' which contains information to enable a client to most +
Sent to clients to provide what is known as a 'data package' which contains information to enable a client to most easily communicate with the Archipelago server. Contents include things like location id to name mappings, among others; see DataPackage for more info.
-Readonly
cmdReadonly
dataThe data package as an object of DataPackage.
+Sent by the client to request the data package from the server. Does not require client authentication.
-Sent by the client to request the data package from the server. Does not require client authentication.
+Sent by the client to request a single or multiple values from the server's data storage, see the SetPacket +
Sent by the client to request a single or multiple values from the server's data storage, see the SetPacket for how to write values to the data storage. A GetPacket will be answered with a RetrievedPacket.
Additional properties sent in this package will also be added to the RetrievedPacket it triggers.
Some special read-only keys exist with specific return data:
@@ -14,7 +14,7 @@_read_race_mode
: number
- Returns 0
if race mode is disabled, 1
if it's enabled.Additional arguments to be returned in RetrievedPacket.
-Sent to clients to broadcast a player has met their goal condition.
+Sent to clients to broadcast a player has met their goal condition.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
slotSlot of the triggering player.
-Readonly
teamTeam of the triggering player.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
slotSlot of the triggering player.
+Readonly
teamTeam of the triggering player.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to relevant clients to broadcast item hint information.
+Sent to relevant clients to broadcast item hint information.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
foundWhether the location hinted for was checked.
-Readonly
itemSource player's identifier, location identifier, item identifier and item flags.
-Readonly
receivingDestination player's identifier.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
foundWhether the location hinted for was checked.
+Readonly
itemSource player's identifier, location identifier, item identifier and item flags.
+Readonly
receivingDestination player's identifier.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to clients if the server caught a problem with a given packet's arguments.
+Sent to clients if the server caught a problem with a given packet's arguments.
InvalidPacketPacket for all possible InvalidPacket
packet subtypes.
Sent to clients if the server caught a problem with a given packet's cmd
property.
Sent to clients if the server caught a problem with a given packet's cmd
property.
InvalidPacketPacket for all possible InvalidPacket
packet subtypes.
Sent to clients to broadcast a player has received a cheated item (via !getitem
).
Sent to clients to broadcast a player has received a cheated item (via !getitem
).
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
itemSource player's identifier, location identifier, item identifier and item flags.
-Readonly
receivingDestination player's identifier.
-Readonly
teamTeam of the triggering player.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
itemSource player's identifier, location identifier, item identifier and item flags.
+Readonly
receivingDestination player's identifier.
+Readonly
teamTeam of the triggering player.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to clients to broadcast a player has received an item.
+Sent to clients to broadcast a player has received an item.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
itemSource player's identifier, location identifier, item identifier and item flags.
-Readonly
receivingDestination player's identifier.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
itemSource player's identifier, location identifier, item identifier and item flags.
+Readonly
receivingDestination player's identifier.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to clients to broadcast a client has connected.
+Sent to clients to broadcast a client has connected.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
slotSlot of the triggering player.
-Readonly
tagsTags of the triggering player.
-Readonly
teamTeam of the triggering player.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
slotSlot of the triggering player.
+Readonly
tagsTags of the triggering player.
+Readonly
teamTeam of the triggering player.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent by the client to inform the server of locations that the client has checked. Used to inform the server of new +
Sent by the client to inform the server of locations that the client has checked. Used to inform the server of new checks that are made, as well as to sync state.
-Sent to clients to acknowledge a received LocationScoutsPacket and responds with the item in each location +
Sent to clients to acknowledge a received LocationScoutsPacket and responds with the item in each location being scouted.
-Sent by the client to inform the server of locations the client has seen, but not checked. Useful in cases in which +
Sent by the client to inform the server of locations the client has seen, but not checked. Useful in cases in which the item may appear in the game world, but may not be immediately gettable. The server will always respond with a LocationInfoPacket with the items located in the scouted location.
-Readonly
cmdReadonly
create_0
, this packet will not create hints for any locations in this packet.1
, this packet will create hints for all locations in this packet and broadcast them to all
relevant clients.2
, this packet will create hints for all locations in this packet and broadcast only new hints to
all relevant clients.Readonly
locationsThe ids of the locations seen by the client. May contain any number of locations, even ones sent before; +
Readonly
locationsThe ids of the locations seen by the client. May contain any number of locations, even ones sent before; duplicates do not cause issues with the Archipelago server.
-Sent to clients to broadcast a client has disconnected.
+Sent to clients to broadcast a client has disconnected.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
slotSlot of the triggering player.
-Readonly
teamTeam of the triggering player.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
slotSlot of the triggering player.
+Readonly
teamTeam of the triggering player.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to clients when they receive an item.
-Sent to clients to broadcast a player has released all remaining items in their world.
+Sent to clients to broadcast a player has released all remaining items in their world.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
slotSlot of the triggering player.
-Readonly
teamTeam of the triggering player.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
slotSlot of the triggering player.
+Readonly
teamTeam of the triggering player.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to clients as a response to a GetPacket.
+Sent to clients as a response to a GetPacket.
Additional arguments added to the GetPacket that triggered this RetrievedPacket will also be passed along.
Additional arguments that were passed in from GetPacket.
-Readonly
cmdReadonly
keysA key-value collection containing all the values for the keys requested in the GetPacket.
+Sent to clients when they connect to an Archipelago server, but before they authenticate.
-Sent to clients when they connect to an Archipelago server, but before they authenticate.
+Readonly
cmdReadonly
datapackage_Checksum hash of the individual games' data packages the server will send. Used by newer clients to decide which games' caches are outdated. See DataPackage for more information on the data package.
-Readonly
gamesList of games present in this multi-world.
-Readonly
generator_Object denoting the version of Archipelago which generated the multi-world.
-Readonly
hint_The amount of points it costs to receive a hint from the server.
-Readonly
location_The amount of hint points you receive per item/location check completed.
-Readonly
passwordDenoted whether a password is required to join this room.
-Readonly
permissionsMapping of restrict-able commands to their current PermissionValue level.
-Readonly
seed_Uniquely identifying name for this generation. Based on the seed
, but not identical to prevent spoilers.
Readonly
tagsDenotes special features or capabilities that the sender is capable of. Example: WebHost
Readonly
timeUnix time stamp in seconds of "now". Sent for time synchronization if wanted for things like a DeathLink +
Readonly
gamesList of games present in this multi-world.
+Readonly
generator_Object denoting the version of Archipelago which generated the multi-world.
+Readonly
hint_The amount of points it costs to receive a hint from the server.
+Readonly
location_The amount of hint points you receive per item/location check completed.
+Readonly
passwordDenoted whether a password is required to join this room.
+Readonly
permissionsMapping of restrict-able commands to their current PermissionValue level.
+Readonly
seed_Uniquely identifying name for this generation. Based on the seed
, but not identical to prevent spoilers.
Readonly
tagsDenotes special features or capabilities that the sender is capable of. Example: WebHost
Readonly
timeUnix time stamp in seconds of "now". Sent for time synchronization if wanted for things like a DeathLink BouncePacket.
-Readonly
versionObject denoting the version of Archipelago which the server is running.
-Readonly
versionObject denoting the version of Archipelago which the server is running.
+Sent when there is a need to update information about the present game session. Generally useful for async games. +
Sent when there is a need to update information about the present game session. Generally useful for async games. Once authenticated, this may also contain data from ConnectedPacket.
All arguments for this packet are optional, only changes are sent.
-Optional
Readonly
checked_Might be a partial update, containing new locations that were checked, especially from a co-op partner in the same slot.
-Readonly
cmdOptional
Readonly
hint_The amount of points it costs to receive a hint from the server.
-Optional
Readonly
hint_Number of hint points that the current player has.
-Optional
Readonly
location_The amount of hint points you receive per item/location check completed.
-Optional
Readonly
passwordDenoted whether a password is required to join this room.
-Readonly
permissionsMapping of restrict-able commands to their current PermissionValue level.
-Optional
Readonly
playersInformation on the players, whether connected or not.
-Optional
Readonly
tagsDenotes special features or capabilities that the sender is capable of. Example: WebHost
Optional
Readonly
timeUnix time stamp of "now". Send for time synchronization if wanted for things like a DeathLink +
Readonly
cmdOptional
Readonly
hint_The amount of points it costs to receive a hint from the server.
+Optional
Readonly
hint_Number of hint points that the current player has.
+Optional
Readonly
location_The amount of hint points you receive per item/location check completed.
+Optional
Readonly
passwordDenoted whether a password is required to join this room.
+Readonly
permissionsMapping of restrict-able commands to their current PermissionValue level.
+Optional
Readonly
playersInformation on the players, whether connected or not.
+Optional
Readonly
tagsDenotes special features or capabilities that the sender is capable of. Example: WebHost
Optional
Readonly
timeUnix time stamp of "now". Send for time synchronization if wanted for things like a DeathLink BouncePacket.
-Basic chat-type packet which sends text to the server to be distributed to other clients.
-Sent to clients to broadcast a server-side chat message.
+Sent to clients to broadcast a server-side chat message.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
messageOriginal chat message without sender prefix.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
messageOriginal chat message without sender prefix.
+Readonly
typeThe PrintJSONPacket subtype.
+Used to register your current session for receiving all SetReplyPackets of certain keys to allow your client +
Used to register your current session for receiving all SetReplyPackets of certain keys to allow your client to keep track of changes.
-Readonly
cmdReadonly
keysKeys to receive all SetReplyPackets for.
+Sent by the client to write data to the server's data storage, that data can then be shared across worlds or just +
Sent by the client to write data to the server's data storage, that data can then be shared across worlds or just saved for later. Values for keys in the data storage can be retrieved with a GetPacket, or monitored with a SetNotifyPacket.
Additional arguments sent in this package will also be added to the SetReplyPacket it triggers.
Additional arguments to be returned in SetReplyPacket.
-Readonly
cmdReadonly
defaultThe default value to use in case the key has no value on the server.
+Readonly
keyThe key to manipulate.
+Readonly
operationsOperations to apply to the value, multiple operations can be present, and they will be executed in order of appearance. See DataStorageOperation for information on supported operations.
-Readonly
want_If set, the server will send a SetReplyPacket back to the client.
-Readonly
want_If set, the server will send a SetReplyPacket back to the client.
+Sent to clients in response to a SetPacket if want_reply
was set to true, or if the client has registered
+
Sent to clients in response to a SetPacket if want_reply
was set to true, or if the client has registered
to receive updates for a certain key using the SetNotifyPacket. SetReplyPackets are sent even if a
SetPacket package did not alter the value for the key.
Additional arguments added to the SetPacket that triggered this SetReplyPacket will also be passed along.
Additional arguments that were passed in from SetPacket.
-Sent to the server to update on the client's status. Examples include readiness or goal completion.
-Sent to the server to update on the client's status. Examples include readiness or goal completion.
+Readonly
cmdReadonly
statusThe new client status value to set this slot to. See clientStatuses for all known values.
+Readonly
cmdReadonly
statusThe new client status value to set this slot to. See clientStatuses for all known values.
This packet is ignored if the client status was set to clientStatuses.goal.
-Sent to server to request a ReceivedItemsPacket with all items ever received.
+Sent to server to request a ReceivedItemsPacket with all items ever received.
Sent to clients to broadcast a client has changed their tags.
+Sent to clients to broadcast a client has changed their tags.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
slotSlot of the triggering player.
-Readonly
tagsTags of the triggering player.
-Readonly
teamTeam of the triggering player.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
slotSlot of the triggering player.
+Readonly
tagsTags of the triggering player.
+Readonly
teamTeam of the triggering player.
+Readonly
typeThe PrintJSONPacket subtype.
+Sent to relevant clients to broadcast tutorial information, usually on first connection.
+Sent to relevant clients to broadcast tutorial information, usually on first connection.
PrintJSONPacket for all possible PrintJSON
packet subtypes.
Readonly
cmdReadonly
dataAll the textual metadata for this packet.
-Readonly
typeThe PrintJSONPacket subtype.
-Readonly
cmdReadonly
dataAll the textual metadata for this packet.
+Readonly
typeThe PrintJSONPacket subtype.
+An interface of client options that can be set on a Client object.
-An interface of client options that can be set on a Client object.
+If enabled, logs the game, library version, and user agent to data storage, which can be used for debugging purposes.
Optional
maximumDetermines the maximum number of chat messages to log in MessageManager.
+Optional
maximumDetermines the maximum number of chat messages to log in MessageManager.
Optional
timeoutThe maximum number of milliseconds to wait for a response from the server when awaiting a response to a client +
Optional
timeoutThe maximum number of milliseconds to wait for a response from the server when awaiting a response to a client packet.
An interface of additional connection arguments when authenticating to an Archipelago server.
-An interface of additional connection arguments when authenticating to an Archipelago server.
+Optional
Readonly
passwordThe room password, if the server requires a password to join. Otherwise, optional.
Optional
Readonly
slotRequest this slot's data during connection. If false
, server will respond with an empty object ({}
) instead.
Optional
Readonly
slotRequest this slot's data during connection. If false
, server will respond with an empty object ({}
) instead.
Optional
tagsA list of strings that denote special features or capabilities this sender is currently capable of. A list of +
Optional
tagsA list of strings that denote special features or capabilities this sender is currently capable of. A list of common tags is documented here:
https://github.com/ArchipelagoMW/Archipelago/blob/main/docs/network%20protocol.md#tags.
Optional
Readonly
uuidA unique identifier for this client.
+Optional
Readonly
uuidA unique identifier for this client.
Not currently used for anything server side, but may change or be deprecated in a future Archipelago update.
Optional
Readonly
versionThe version of Archipelago this client was designed for. This can be enforced on the server side to force a user +
Optional
Readonly
versionThe version of Archipelago this client was designed for. This can be enforced on the server side to force a user to update their client, if a new version was released.
Readonly
build: numberThe build version component.
Readonly
major: numberThe major version component.
Readonly
minor: numberThe minor version component.
A collection of types, constants, and enumerations that get passed over the Archipelago network protocol.
+A collection of types, constants, and enumerations that get passed over the Archipelago network protocol.
You can read more information about the Network Protocol in the Archipelago Network Protocol documentation on their GitHub repository. API
Adds value
to the current value of the key, if both the current value and value
are arrays then value
will be
+
Adds value
to the current value of the key, if both the current value and value
are arrays then value
will be
appended to the current value.
Readonly
operation: "add"Readonly
value: number | JSONSerializableData[]A value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Applies a bitwise AND to the current value of the key with value
.
Applies a bitwise AND to the current value of the key with value
.
Readonly
operation: "and"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Rounds up the current value to the nearest integer.
+Rounds up the current value to the nearest integer.
Readonly
operation: "ceil"Readonly
value: nullIgnored for this operation.
DataStorageOperation for all possible operation subtypes.
-A textual node containing color metadata.
+A textual node containing color metadata.
Readonly
color: ValidJSONColorTypeIncludes the color to print this text with.
Readonly
text: stringUsed to supply text data for this node.
Readonly
type: "color"Used to denote the intent of the message part.
JSONMessagePart for all possible message part node subtypes.
-A union of known errors the Archipelago server can send back to the client when they receive a +
A union of known errors the Archipelago server can send back to the client when they receive a ConnectionRefusedPacket.
-A DataPackage is an object which contains arbitrary metadata about each game to enable a client to interact +
A DataPackage is an object which contains arbitrary metadata about each game to enable a client to interact with the Archipelago server easily.
Note:
-2
: Server
(typically Remote Start Inventory).
Readonly
games: Record<string, GamePackage>Mapping of all Games and their respective data. See GamePackage for additional info.
-A union of all possible DataStorages. An operation manipulates or alters the value of a key in the data +
A union of all possible DataStorages. An operation manipulates or alters the value of a key in the data storage. If the operation transforms the value from one state to another then the current value of the key is used as the starting point otherwise the SetPacket's default is used if the key does not exist on the server already.
@@ -8,4 +8,4 @@If the key has no value yet, sets the current value of the key to default
of the SetPacket's (value
is
+
If the key has no value yet, sets the current value of the key to default
of the SetPacket's (value
is
ignored).
Readonly
operation: "default"Readonly
value: nullA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Rounds down the current value to the nearest integer.
+Rounds down the current value to the nearest integer.
Readonly
operation: "floor"Readonly
value: nullIgnored for this operation.
DataStorageOperation for all possible operation subtypes.
-Collection of data that contains meta information for a particular game.
+Collection of data that contains meta information for a particular game.
Readonly
checksum: stringSHA1 checksum of this game's data.
Readonly
item_Mapping of all item names to their respective id.
Readonly
location_Mapping of all location names to their respective id.
-A union of possible InvalidPacket
packets. Sent to clients if the server caught a problem with a packet. See each
+
A union of possible InvalidPacket
packets. Sent to clients if the server caught a problem with a packet. See each
packet subtype for more details.
A textual node containing item metadata.
+A textual node containing item metadata.
Readonly
flags: numberBit flags that determine if an item is progression, "nice to have", filler, or a trap.
Readonly
player: numberThe id
of the player who owns this item.
Readonly
text: stringUsed to supply text data for this node.
Readonly
type: "item_id" | "item_name"Used to denote the intent of the message part.
JSONMessagePart for all possible message part node subtypes.
-A union of all message node subtypes sent along with PrintJSONPacket, which can be reconstructed into a +
A union of all message node subtypes sent along with PrintJSONPacket, which can be reconstructed into a legible message. Each node is intended to be read in the order provided in the packet.
A type union of all basic JSON-compatible types.
-A type union of all basic JSON-compatible types.
+Applies a bitwise left-shift to the current value of the key by value
.
Applies a bitwise left-shift to the current value of the key by value
.
Readonly
operation: "left_shift"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-A textual node containing location metadata.
+A textual node containing location metadata.
Readonly
player: numberThe id
of the player who has this location.
Readonly
text: stringUsed to supply text data for this node.
Readonly
type: "location_id" | "location_name"Used to denote the intent of the message part.
JSONMessagePart for all possible message part node subtypes.
-Sets the current value of the key to value
if value
is bigger.
Sets the current value of the key to value
if value
is bigger.
Readonly
operation: "max"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Sets the current value of the key to value
if value
is lower.
Sets the current value of the key to value
if value
is lower.
Readonly
operation: "min"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Sets the current value of the key to the remainder after division by value
.
Sets the current value of the key to the remainder after division by value
.
Readonly
operation: "mod"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Multiplies the current value of the key by value
.
Multiplies the current value of the key by value
.
Readonly
operation: "mul"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-An object representing a hint information for a particular item and location that contains it.
+An object representing a hint information for a particular item and location that contains it.
Readonly
entrance: stringThe name of the entrance to the location where this item is located.
Readonly
finding_The id of the player who has this item in their world.
Readonly
found: booleanWhether this item has already been found.
@@ -6,4 +6,4 @@Readonly
item_The classification bit flags for this item. See itemsHandlingFlags for known flags.
Readonly
location: numberThe id of the location for this item.
Readonly
receiving_The id of the player who owns this item.
-Items that are sent over the network.
+Items that are sent over the network.
Readonly
flags: numberThe classification bit flags for this item. See itemsHandlingFlags for known flags.
Readonly
item: numberThe item id of the item. Item ids are in the range of -2^53 to +2^53-1.
Readonly
location: numberThe location id of the location inside the world. Location ids are in the range of -2^53 to +2^53 - 1.
Readonly
player: numberThe slot id for the player whose world the item was located in, except when inside a LocationInfoPacket, then it will be the slot id of the player the item belongs to.
-An object that contains metadata about an individual player on the network.
+An object that contains metadata about an individual player on the network.
Readonly
alias: stringRepresents the player's name in current time. Can be changed during a game with the !alias <name>
command by
the player.
Readonly
name: stringThe original slot name as defined by the player's configuration file. Individual names are unique among players.
Readonly
slot: numberDetermines the slot id for this player. Slot numbers are unique per team and start at 1
. Slot number 0
refers
to the Archipelago server; this may appear in instances where the server grants the player an item.
Readonly
team: numberDetermines the team the player is on. Useful for competitive seeds. Team numbers start at 0
.
An object representing metadata about a given slot on each team.
+An object representing metadata about a given slot on each team.
Readonly
game: stringThe game this slot is playing.
Readonly
group_Contains a list of player ids, if the type
is slotTypes.group. Used for item links, otherwise empty.
Readonly
name: stringThe original slot name as defined by the player's configuration file. Individual names are unique among players.
Readonly
type: typeof slotTypes[keyof typeof slotTypes]The type of slot this is. See slotTypes for known slot types.
-An object representing software versioning. Used in the ConnectPacket to allow the client to inform the +
An object representing software versioning. Used in the ConnectPacket to allow the client to inform the server the minimum Archipelago version it supports.
Readonly
build: numberThe build/patch component of the version number. (e.g., 0.0.X)
Readonly
class: "Version"Apparently required to be present to ensure the Archipelago server parses this object correctly.
Readonly
major: numberThe major component of the version number. (e.g., X.0.0)
Readonly
minor: numberThe minor component of the version number. (e.g., 0.X.0)
Applies a bitwise OR to the current value of the key with value.
+Applies a bitwise OR to the current value of the key with value.
Readonly
operation: "or"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Mapping of restrict-able commands to their current permissions level.
+Mapping of restrict-able commands to their current permissions level.
Readonly
collect: PermissionValueDictates what is allowed when it comes to a player collecting their run. A collect is an action which sends the rest of the items in a player's run.
This command cannot have the permissions.auto or permissions.autoEnabled permission.
-The type for a given permission value.
-The type for a given permission value.
+List or Dict only: for lists
it will remove the index of the value
given. For dicts
it removes the element with
+
List or Dict only: for lists
it will remove the index of the value
given. For dicts
it removes the element with
the specified key of value
.
Readonly
operation: "pop"Readonly
value: JSONSerializableDataA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Multiplies the current value of the key to the power of value
.
Multiplies the current value of the key to the power of value
.
Readonly
operation: "pow"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-A union of possible PrintJSON
packets. Sent to clients purely to display a message to the player. While various
+
A union of possible PrintJSON
packets. Sent to clients purely to display a message to the player. While various
message types provide additional arguments, clients only need to evaluate the data
argument to construct the
human-readable message text. All other arguments may be ignored safely.
A union of all known PrintJSONPacket types.
-A union of all known PrintJSONPacket types.
+List only: removes the first instance of value
found in the list.
List only: removes the first instance of value
found in the list.
Readonly
operation: "remove"Readonly
value: JSONSerializableDataA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Sets the current value of the key to value
.
Sets the current value of the key to value
.
Readonly
operation: "replace"Readonly
value: JSONSerializableDataA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-Applies a bitwise right-shift to the current value of the key by value
.
Applies a bitwise right-shift to the current value of the key by value
.
Readonly
operation: "right_shift"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-A textual node containing plaintext metadata.
+A textual node containing plaintext metadata.
Readonly
text: stringUsed to supply text data for this node.
Optional
Readonly
type?: Used to denote the intent of the message part.
JSONMessagePart for all possible message part node subtypes.
-Dict only: Updates the dictionary with the specified elements given in value
creating new keys, or updating old
+
Dict only: Updates the dictionary with the specified elements given in value
creating new keys, or updating old
ones if they previously existed.
Readonly
operation: "update"Readonly
value: JSONSerializableDataA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-This is a type union of all supported "colors" denoting a console color to display the message part with and is only +
This is a type union of all supported "colors" denoting a console color to display the message part with and is only
sent if the type
is color
. This is limited to console colors due to backwards compatibility needs with games such
as A Link to the Past
. Although background colors as well as foreground colors are listed, only one may be applied
to a JSONMessagePart at a time.
This is a type union of all supported message types for denoting the intent of the message part. This can be used to +
This is a type union of all supported message types for denoting the intent of the message part. This can be used to indicate special information which may be rendered differently depending on client.
text
: Regular text content. This is also the default type and is often omitted.entrance_name
: Entrance name. No id mapping exists.color
: Regular text that should be colored. Only type that will contain color data.Applies a bitwise XOR to the current value of the key with value
.
Applies a bitwise XOR to the current value of the key with value
.
Readonly
operation: "xor"Readonly
value: numberA value for the operation to apply against the current data storage value.
DataStorageOperation for all possible operation subtypes.
-A type alias for any known client status. See clientStatuses for more information.
-A type alias for any known client status. See clientStatuses for more information.
+A callback that fires when a monitored key is updated in data storage.
-A callback that fires when a monitored key is updated in data storage.
+A promise that resolves to a record of key-value pairs from data storage.
-A promise that resolves to a record of key-value pairs from data storage.
+An interface with all supported death events and their respective callback arguments. To be called from +
An interface with all supported death events and their respective callback arguments. To be called from MessageManager.
Fired when a DeathLink-enabled player has sent a DeathLink.
The DeathLink data structure.
+The DeathLink data structure.
Optional
Readonly
cause?: stringOptional text explaining the cause of death. When provided, this should include the player's name. (e.g., Phar drowned in a vat of kittens.
)
Readonly
source: stringThe name of the player who died. Can be a slot name, but could also be a name from within a multiplayer game.
Readonly
time: numberUnix timestamp of time of death.
-An interface with all supported item/hint events and their respective callback arguments. To be called from +
An interface with all supported item/hint events and their respective callback arguments. To be called from ItemsManager.
Fired when a hint has been found.
Fired when items have been received.
The ItemsManager.received index for the first item in the items
array.
An interface with all supported message events and their respective callback arguments. To be called from +
An interface with all supported message events and their respective callback arguments. To be called from MessageManager.
Fires when a player message is received.
The index of this message in MessageManager.messages, when this event was fired. If message
logging is disabled, this will return -1
.
Fires when a player updates their alias.
+An interface with all supported room events and their respective callback arguments. To be called from +
An interface with all supported room events and their respective callback arguments. To be called from RoomStateManager.
Fires when the hint cost has been updated.
Fires when command permissions have been updated.
An interface with all supported socket events and their respective callback arguments. To be called from +
An interface with all supported socket events and their respective callback arguments. To be called from SocketManager.
Fires when the client receives a BouncedPacket.
The raw BouncedPacket.
@@ -38,4 +38,4 @@An abstract type for unknown slot data.
-An abstract type for unknown slot data.
+Const
A const of known containing the possible client states that may be used to inform the server during a status update.
+Const
A const of known containing the possible client states that may be used to inform the server during a status update.
Readonly
connected: 5Client is currently connected. This status is set automatically when a client connects.
Readonly
disconnected: 0Client is in an unknown or disconnected state. This status is set automatically initially and when all connected clients have disconnected from the server.
Readonly
goal: 30Client has completed their goal. Once set, cannot be changed.
Readonly
playing: 20Client is currently playing.
Readonly
ready: 10Client is ready to start, but hasn't started playing yet.
-Const
Bit flags that define the special characteristics of a NetworkItem.
+Const
Bit flags that define the special characteristics of a NetworkItem.
Readonly
normal: 0A shorthand with no flags set, also known as 'filler' or 'junk' items.
Readonly
progression: 1If set, indicates the item may unlock logical advancement.
Readonly
trap: 4If set, indicates the item can inconvenience a player.
Readonly
useful: 2If set, indicates the item is classified as useful to have.
-Const
Bit flags configuring which items should be sent by the server to this client.
+Const
Bit flags configuring which items should be sent by the server to this client.
Readonly
all: 7Shorthand for REMOTE_DIFFERENT_WORLDS
, REMOTE_OWN_WORLD
, and REMOTE_STARTING_INVENTORY
.
Readonly
minimal: 0Indicates the client only receives items created by cheat commands.
Readonly
others: 1Indicates the client get items sent from other worlds.
Readonly
own: 2Indicates the client get items sent from your own world. Requires REMOTE_DIFFERENT_WORLDS
to be set.
Readonly
starting: 4Indicates the client get your starting inventory sent. Requires REMOTE_DIFFERENT_WORLDS
to be set.
Const
A const containing the possible command permissions, for commands that may be restricted.
+Const
A const containing the possible command permissions, for commands that may be restricted.
Readonly
auto: 6Forces players to use this command after they have completed their goal.
Readonly
autoAllows players to use this command manually at any time and forces them to use this command after they have @@ -7,4 +7,4 @@
Readonly
disabled: 0Prevents players from using this command at any time.
Readonly
enabled: 1Allows players to use this command manually at any time.
Readonly
goal: 2Allows players to use this command manually after they have completed their goal.
-Const
An enumeration representing the nature of the slot.
+Const
An enumeration representing the nature of the slot.
Readonly
group: 2This client is an item links group containing at least 1 player with active item links.
Readonly
player: 1This client is a player and is participating in the current game.
Readonly
spectator: 0This client is a spectator and not participating in the current game.
-Const
Const
Const
Archipelago version this library attempts to target. Support for older versions of the Archipelago API is not +
Const
Archipelago version this library attempts to target. Support for older versions of the Archipelago API is not guarenteed and some newer enhancements may no longer work or be supported.
-
The client that connects to an Archipelago server and provides helper methods and objects to facilitate +
- Preparing search index...
- The search index is not available
archipelago.js - v2.0.0-rc2Class Client
The client that connects to an Archipelago server and provides helper methods and objects to facilitate communication, listen for events, and manage data.
-Index
Constructors
Index
Constructors
Properties
Constructors
constructor
Instantiates a new Archipelago client. After creating, call Client.login to connect and authenticate to a server.
Parameters
Optional
options: ClientOptionsAdditional configuration options for this client. See ClientOptions for more information.
-Returns Client
Properties
Readonly
deathA helper object for handling DeathLink mechanics.
-Readonly
itemsA helper object for handling received items and hints.
-Readonly
messagesA helper object for handling chat messages.
-options
Current options for this client.
-Readonly
packageA helper object for handling game data packages.
-Readonly
playersA helper object for handling players (including self).
-Readonly
roomA helper object for handling room state.
-Readonly
socketA helper object for handling websocket communication and AP network protocol.
-Readonly
storageA helper object for handling the data storage API.
-Accessors
arguments
Returns a copy of this client's current connection arguments (or defaults, if never connected).
-Returns Required<ConnectionOptions>
authenticated
Returns
-true
if currently connected and authenticated to the Archipelago server.Returns boolean
game
Returns the client's current game name (or an empty string, if never connected).
-Returns string
name
Returns the client's current slot name (or an empty string, if never connected).
-Returns string
Methods
bounce
Send a bounce packet targeting any clients that fulfil any target parameters. Can be listened for by listening to +
Returns Client
Properties
Readonly
deathA helper object for handling DeathLink mechanics.
+Readonly
itemsA helper object for handling received items and hints.
+Readonly
messagesA helper object for handling chat messages.
+options
Current options for this client.
+Readonly
packageA helper object for handling game data packages.
+Readonly
playersA helper object for handling players (including self).
+Readonly
roomA helper object for handling room state.
+Readonly
socketA helper object for handling websocket communication and AP network protocol.
+Readonly
storageA helper object for handling the data storage API.
+Accessors
arguments
Returns a copy of this client's current connection arguments (or defaults, if never connected).
+Returns Required<ConnectionOptions>
authenticated
Returns
+true
if currently connected and authenticated to the Archipelago server.Returns boolean
game
Returns the client's current game name (or an empty string, if never connected).
+Returns string
name
Returns the client's current slot name (or an empty string, if never connected).
+Returns string
Methods
bounce
Send a bounce packet targeting any clients that fulfil any target parameters. Can be listened for by listening to "bounced" events on SocketManager.
Parameters
games?: string[];
slots?: number[];
tags?: string[];
}
The targets to receive this bounce packet.
Optional
games?: string[]Specific games that should receive this bounce.
@@ -48,13 +48,13 @@[p: string]: JSONSerializableData;
}
The json-serializable data to send.
[p: string]: JSONSerializableData
Returns void
Throws
Error If attempting to send a bounce while not authenticated.
Remarks
If no targets are specified, no clients will receive this bounce packet.
-check
Marks a list of locations as checked on the server.
+check
Marks a list of locations as checked on the server.
Parameters
Rest
...locations: number[]Location ids to check.
Returns void
Throws
Error If attempting to check locations while not authenticated.
Remarks
Locations that do not exist or have already been checked in the multi-world are ignored.
-goal
A shorthand for running
Client.updateStatus(clientStatuses.goal)
. Once set, cannot be changed and if release +goal
A shorthand for running
-Client.updateStatus(clientStatuses.goal)
. Once set, cannot be changed and if release and/or collect is set to automatic, will release/collect all items.Returns void
login
Connect and authenticate to an Archipelago server.
+Returns void
login
Connect and authenticate to an Archipelago server.
Type Parameters
If slot data is requested, this sets the type of the returning slot data.
Parameters
The url of the server, including the protocol (e.g.,
wss://archipelago.gg:38281
).The slot name this client will be connecting to.
@@ -69,7 +69,7 @@Example: TypeScript with Slot Data
-scout
Scout a list of locations for their containing items.
+