Skip to content

Releases: simgine/bevy_replicon

Bevy Replicon 0.40.2

23 May 09:40
e41d892

Choose a tag to compare

Changed

  • Don't schedule systems when no messages/events for them have been registered.

Bevy Replicon 0.41.0-rc.1

17 May 15:06
4791a60

Choose a tag to compare

Pre-release

Changed

  • Update to Bevy 0.19.0-rc.1.
  • DeferredEntity::flush now consumes the entity.
  • Rename scene module and feature into world_serialization.
  • Rename DeferredChanges into EntityScratch.

Bevy Replicon 0.40.1

17 May 14:31
680a5ee

Choose a tag to compare

Changed

  • SendMode now available from prelude to simplify the migration.

Bevy Replicon 0.40.0

17 May 14:15
8979925

Choose a tag to compare

Added

  • Shared messages and events via SharedMessageAppExt and SharedEventAppExt. Emitted as LocalOrRemote<M> on both the sender and the receiver to allow shared logic for client-side prediction.
  • iter_received and iter_sent methods on ClientMessages and ServerMessages to inspect inbound and outbound messages on a channel without consuming them.

Changed

  • ServerMessages::retain_sent is now public, allowing users to filter outbound messages before the backend drains them.
  • VisibilityFilter trait and related types moved to the shared::replication::visibility module and no longer feature gated by the server feature.
  • Replicated is no longer automatically inserted on clients, only Remote. scene::replicate_into will serialize all entities that have either Remote or Replicated.
  • Rename SendMode::Broadcast into SendTargets::All
  • Rename SendMode::BroadcastExcept into SendTargets::AllExcept
  • Rename SendMode::Direct into SendTargets::Single
  • Rename ToClients::mode into ToClients::targets

Bevy Replicon 0.39.5

26 Apr 11:12
50426f4

Choose a tag to compare

Fixed

  • Don't panic when receiving acks from disconnected clients (backends might not discard messages immediately, allowing to react to them).

Bevy Replicon 0.39.4

07 Apr 23:18
72e07c6

Choose a tag to compare

Fixed

  • Deferred component insertions no longer cause undefined behavior.

Bevy Replicon 0.39.3

04 Apr 19:02
707572e

Choose a tag to compare

Fixed

  • Visibility is now properly updated when VisibilityFilter and VisibilityFilter::ClientComponent are not the same type.

Bevy Replicon 0.39.2

31 Mar 21:40
d430d58

Choose a tag to compare

Fixed

  • Entities spawned during component deserialization now also get the Remote marker.

Bevy Replicon 0.39.1

09 Mar 21:19
1bd800f

Choose a tag to compare

Fixed

  • Don't panic when despawning hierarchy with signatures.

Bevy Replicon 0.39.0

24 Feb 00:07
bba935d

Choose a tag to compare

Added

  • Remote component that automatically inserted on entities spawned by replication.
  • SendMode::SERVER_ONLY and SendMode::CLIENTS_ONLY constants for convenience.
  • command_fns::write_if_neq built-in to avoid writing component if the value didn't change.
  • DeferredEntity::world_mut to access world mutable during replication.

Changed

  • VisibilityFilter now allows expressing more complex rules:
    • A new ClientComponent associated type allows specifying a different component for client entities. Use Self to preserve the previous behavior.
    • In is_visible, self now refers to the entity component, and the client component is passed into the function.
    • The passed component is now wrapped in an Option to allow customizing behavior when the component on the client is missing.
    • is_visible now accepts the client entity.
  • AuthorizedClient and ConnectedClient now immutable.
  • ClientStats now represents only current client statistics. Use the ConnectedClientStats component for connected client statistics on the server.
  • ConditionerConfig now represents configuration only for a connected client on the server. Use the GlobalConditionerConfig resource for global server or client configuration.
  • ServerPlugin::tick_schedule now wrapped in an Option. You can set it to None to trigger replication by manually incrementing ServerTick.
  • Make ClientMessages::received_count public.
  • Make increment_tick public.
  • Rename ComponentScope into SingleComponent.
  • Rename command_markers module into receive_markers.
  • Rename command_fns module into receive_fns.
  • Rename AppMarkerExt::set_command_fns into AppMarkerExt::set_receive_fns.