Sometimes, when deleting static markers where isServerMarker is true, the deletion of the marker is not properly synced from server to client, seemingly at random. This leads to situations where one or more clients see markers that no longer exist on the server. For scenarios where objectives are marked on the map with static markers, this is problematic.
Description
Details
- Severity
- Minor
- Resolution
- Open
- Reproducibility
- Sometimes
- Operating System
- Windows 11 x64
- Operating System Version
- Windows 11, version 23H2
- Category
- General
- Download and unzip the mod inside the attached file, 'StaticMapMarkers'. Place the mod folder inside your Workbench addons directory (usually C:\Users\<your-user>\Documents\My Games\ArmaReforgerWorkbench\addons).
- Open the mod in Workbench.
- Open worlds/ArlandTest.ent
- Open the dedicated server tool (ctrl+shift+D) and configure it to run the test harness.
a. Set config type to DedicatedServerPluginCLI_Server
b. Set world to worlds/ArlandTest.ent
c. Set executable to C:\Program Files (x86)\Steam\steamapps\common\Arma Reforger Server\ArmaReforgerServerDiag.exe (or where ever your ArmaReforgerServerDiag.exe is located)
d. Set profile to any value
e. Set params to -debuggerPort 1001 -addonsDir "C:\Program Files (x86)\Steam\steamapps\common\Arma Reforger\addons,C:\Users\<your-user>\Documents\My Games\ArmaReforgerWorkbench\addons"
f. Check run peers
g. Add the desired amount of peers with these params -debuggerPort 1002 -addonsDir "C:\Program Files (x86)\Steam\steamapps\common\Arma Reforger\addons,C:\Users\<your-user>\Documents\My Games\ArmaReforgerWorkbench\addons", setting a unique debuggerPort for any subsequent peers.
- Run the dedicated server tool. The server terminal and peers should open. You may see exceptions related to SCR_SaveManagerCore. These are unrelated and can be ignored. Click 'abort'.
- For each peer client, select US Army, join a group, and spawn at the provided deployment point.
- Open the script editor. Click the 'Debug' dropdown, select 'Debug Custom', and put '1001' for the port so that the debugger connects to the server instance.
- Open the remote console tab, set it to 'Game', paste the following into the remote console, and execute:
auto scripted = new ArmaReforgerScripted(); scripted.CreateMarkers();
100 markers labeled with their index should appear on the map.
- Paste the following into the remote console and execute it:
auto scripted = new ArmaReforgerScripted(); scripted.DeleteMarkers();
Here's where the bug occurs. The expected result would be for all 100 markers to be deleted on the server and on all clients. However, there is a not-insignificant chance that some or all markers will not be deleted on one or more clients. This happens seemingly at random.
Sometimes to see the bug, you need to close and reopen the map, or zoom/pan around.
- To verify that the server and client are out of sync, paste the following in the console, changing the debug port to execute on server/client and see the various results.
auto scripted = new ArmaReforgerScripted(); scripted.PrintAllMarkers(); // Prints custom text of all markers returned SCR_MapMarkerManagerComponent.GetStaticMarkers
Attached are my console output logs (formatted to be easier to understand) produced after following the steps as described in the reproduction section. Attempt 2 has a screenshot to show the results of the bug, where one client has markers on their map, while the other does not.