Buildings destroyed by 3DEN Editors "Edit Terrain Object" module are not working properly in multiplayer missions on dedicated servers. Target building doesn't appear destroyed for players but instead ruins are shown in addition to original building which appears undamaged.
Description
Details
- Severity
- Minor
- Resolution
- Open
- Reproducibility
- N/A
- Operating System
- Windows 7 x64
- Operating System Version
- Ultimate
- Category
- Editor
- Create multiplayer mission and put "Edit Terrain Object" module on some building that is originally in the map.
- Select "destroyed" state from module attributes.
- Run mission on dedicated server.
- Undamaged target building and its ruins are both visible for players.
Problem doesn't occur in singleplayer or in multiplayer if client is same than server. Only on dedicated servers for non-local players.
EDIT, more info: Occurrance of problem is dependant on player count. Propability of problem occurring rises when there are bigger amount of players on server.
Related Objects
- Duplicates Merged Here
- T135693: Edit Terrain Object Module does not work in multiplayer
Event Timeline
Would to confirm that I have too experienced this on a dedicated server I run. The player count did not make any difference to the results described here (tested 1 and 12 players).
The same is true for the state of the doors. Open/close are more or less random on dedicate server.
The solution is known. Instead of a "server only" module trying to execute some weird EG (effect global) commands, it could be far more efficient to run a script locally, at least for destruction which is not supposed to evolve during game. the module must be global.
See the workaround here for destroyed building.
@Wulf It's been almost a year and this is still broken. The "Enable Damage" checkbox is also affected. The problem as far as I can tell is that the code is executed locally to the host. The below workaround is why I believe that.
@PiepMGI A better workaround, although I haven't tested it on the damage states, is to run whatever code is necessary through the "Global Object Init". For example I leave the "Enable Damage" checkbox checked and then enter in the Global Object Init _this allowDamage false;. For the damage states one could try _this setDamage 0.5;. However having to manually script the functions kind of defeats the purpose of the module if you ask me.