0.4.0 • Published 10 months ago

@rbxts/matter-sync v0.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

matter-sync

Server to client data sync solution for the Matter ECS.

Basic Usage

Client:

const Effect = component("Effect")

addSyncComponent(Effect)

someRemotes.syncPayload.connect((payload) => {
    syncClient(world, payload)
})

someRemotes.hydratePayload.connect((payload) => {
    hydrateClient(world, payload)
})

Server:

// This is supposed to be a system
const result = useSyncPayload(world)
if (!result.isEmpty) {
    someRemotes.syncPayload.fireAll(result.payload)
}

for (const [_, player] of useEvent(Players, Players.PlayerAdded)) {
    const result = getHydratePayload(world)
    if (!result.isEmpty) {
        someRemotes.hydratePayload.fire(play, result.payload)
    }
}

It is important to note that if the module that contains the syncable components was never required by the client, then the client will never be able to get the syncable components data from the server. Consider using nested require solutions in this case.

Behavior

The client will only see the entity if any of it's current components are syncable. That means that there quite often will be the case when the entity is considered to be removed from the client side of view, which will not be the case for the server if this entity has other non-syncable components in it.

0.4.0

10 months ago

0.3.0

10 months ago

0.2.1

10 months ago

0.2.3

10 months ago

0.2.2

10 months ago

0.2.0

10 months ago

0.1.0

11 months ago

0.0.22

1 year ago

0.0.21

1 year ago

0.0.20

1 year ago

0.0.19

1 year ago

0.0.18

1 year ago

0.0.17

1 year ago

0.0.16

1 year ago

0.0.15

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago