Oarcinae / FactorioScenarioMultiplayerSpawn

A custom scenario for Factorio which provides each player a unique starting spawn point in a multiplayer game.
MIT License
49 stars 30 forks source link

Base cleanup fails sometimes when players leave early #141

Open Oarcinae opened 1 year ago

Oarcinae commented 1 year ago

Could possibly be happening during the time that regrowth is ABOUT to run. Or could be related to them leaving when the spawn is about to be created?

vfinn commented 1 year ago

Quickest way to test with one person: join a base, setup a radar, stay for any length of time, as admin, restart yourself. Since my mouse frequently double clicks and the drop down then hits ban player, I moved the drop down below the buttons. Also if you lengthen the time it takes to clean the map and remove the player, this issue occurs more frequently. With multiplayer testing, have another player continually join, quit. This is a bit more time consuming. The issue does not occur every time - so race condition. I've worked around this by setting a global flag in: RegrowthForceRemovalOnTick, and clearing it in the other if case (after the time period) (regrowth_map.lua). and stopping the call to RegrowthSectorScan in the event: on_sector_scanned (control.lua). My scenario sees this issue very frequently since I start the player with a radar. I don't know if other players radar scans could cause this event to occur on your player.

This may be occuring in other situations, but this one fix has reduced the number of times the base is not cleaned up, after a player leaves/resets.