godotengine / godotengine/godot
Multiplayer synchronized doesn't emit synchronized signal with REPLICATION_MODE_ON_CHANGE properties
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
Tested on vanilla 4.2.1 and 4.2.2 (Custom build, but it doesn't mess with core functionality nor multiplayer stuff)
### System information
Godot v4.2.2.rc (fb28924c5) - Arch Linux #1 ZEN SMP PREEMPT_DYNAMIC Wed, 29 Nov 2023 00:40:39 +0000 - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 2060 (nvidia; 545.29.06) - Intel(R) Core(TM) i9-10900KF CPU @ 3.70GHz (20 Threads)
### Issue description
So, apparently, `MultiplayerSynchronizer` won't emit `synchronized` signal when properties with `REPLICATION_MODE_ON_CHANGE` replication mode get synced.
### Steps to reproduce
1. Setup a basic network environment
2. Create a multiplayer syncrhonizer node
3. Add a property with "On change" sync mode
4. Connect the `synchronized` signal to a desired node
5. Enjoy the sadness
### Minimal reproduction project (MRP)
[MP2.zip](https://github.com/godotengine/godot/files/14341181/MP2.zip)
Contributor guide
Research direction
Start with the attached MP2.zip minimal reproduction and the MultiplayerSynchronizer behavior described in the issue. Verify whether properties using REPLICATION_MODE_ON_CHANGE trigger the synchronized signal, then confirm the signal is emitted for that case without breaking other synchronization modes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, godot
- Domain
- game-dev, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100