Skip to content

Commit cfc1541

Browse files
Docs: Mention the "last received item index" paradigm in the network protocol docs (#2989)
Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
1 parent 4d954af commit cfc1541

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

docs/network protocol.md

+3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ There are also a number of community-supported libraries available that implemen
3131
| GameMaker: Studio 2.x+ | [see Discord](https://discord.com/channels/731205301247803413/1166418532519653396) | |
3232

3333
## Synchronizing Items
34+
After a client connects, it will receive all previously collected items for its associated slot in a [ReceivedItems](#ReceivedItems) packet. This will include items the client may have already processed in a previous play session.
35+
To ensure the client is able to reject those items if it needs to, each item in the packet has an associated `index` argument. You will need to find a way to save the "last processed item index" to the player's local savegame, a local file, or something to that effect. Before connecting, you should load that "last processed item index" value and compare against it in your received items handling.
36+
3437
When the client receives a [ReceivedItems](#ReceivedItems) packet, if the `index` argument does not match the next index that the client expects then it is expected that the client will re-sync items with the server. This can be accomplished by sending the server a [Sync](#Sync) packet and then a [LocationChecks](#LocationChecks) packet.
3538

3639
Even if the client detects a desync, it can still accept the items provided in this packet to prevent gameplay interruption.

0 commit comments

Comments
 (0)