What causes Multiplayer Desyncs?

Level 8
Joined
Mar 25, 2008
Messages
267
Tons of people are having de-sync problems with my game, LoaP Ascension.
I have gone through the triggers, fixed countless leaks, improved countless triggers to work cleaner and more efficiently, Just this month I removed like 50 useless 0.01 second wait timers pruning them from all triggers in the game.

Someone claimed my trigger command to allow players to change their player color to unused slot colors caused instant desyncs, so I disabled it.

But there's a underlying desync and mouse clicking glitch which i suspect is a curser desync issue.
It only happens in multiplayer

I have posted about it before and people told me several things that caused de-syncs yet my game had none of those in its triggers, anywhere.

My game is also protected with "5.0wc3map optimizer", even with all optimization settings turned off, only the three map protection ones enabled, still does not help.

At the moment I suspect the map protector is the cause, as it has not been updated for years.


-----------------

I have one trigger in the game that goes off any time a boss is attacked, waits 1 second and goes through a directory of if/than/elses based on their mana % and forces them to cast spells, could this be the issue, every time it goes off it causes a 2 second wait timer.

Without that wait timer bosses would try to force cast spells every time they are hit and be glitched in a never ending half-spell cast every time they get shot again.
Edit: And without that trigger bosses don't like to cast their spells.

--------------
The only other one I can think of is the camera that triggers every 0.1 seconds resetting their camera to the integer amount each player set, or its default amount, without this the camera resets every time you hit the scroll button.
--> and i recently went back into this trigger, improved it to only select players who are actually playing, where as before it would do everyone regardless, didn't effect the issue in the end.
 
Level 8
Joined
Jul 4, 2016
Messages
493
It would be best to use timers but if you don't know how to use timers, then yes, it would be better to switch to standard waits for desync avoidance purposes.
 
Level 22
Joined
Feb 27, 2007
Messages
3,784
Don't know how to use timers, from what i have seen creating a timer requires a whole mess of things, and I would need like 20 of them at least.
GUI timers are total ass. They just don't make the functionality easy.
I have tons of respawn triggers that use "Wait 120 seconds" "create blah unit at position"
In general this sort of trigger can probably be run off of a periodic event every 120 seconds.
 
Level 16
Joined
Nov 18, 2012
Messages
1,429
Neither wait game time nor the normal wait causes desync. I still don't know where people make up these assumptions.
Anyway if you want true accuracy, lets say, the waiting time to be precisely e.g. 0.2s or 0.5s or 1s-2s then yes use timers. Using several waits beyond that value is not worth it, since the waiting time of wait actions gets better accuracy the longer it is.
 
Level 8
Joined
Jul 4, 2016
Messages
493
There was some evidence of it on discord, a guy switched his wait game time to normal waits, and his map desynced significantly less.
 
Level 8
Joined
Mar 25, 2008
Messages
267
That was the only non-normal wait in my game.
I switched it.

I do doubt that will fix it though, i think people have desynced without fighting bosses.

Im thinking of tackling the respawn system, i dont know how much of a impact removing two dozen respawn wait timers for a single reoccuring event would have

That said, if 100 mobs spawn at the same moment it could actually make it Worst.
 
Level 8
Joined
Mar 25, 2008
Messages
267
Neither wait game time nor the normal wait causes desync. I still don't know where people make up these assumptions.
Anyway if you want true accuracy, lets say, the waiting time to be precisely e.g. 0.2s or 0.5s or 1s-2s then yes use timers. Using several waits beyond that value is not worth it, since the waiting time of wait actions gets better accuracy the longer it is.
None of my wait timers need to be that accurate, they are just respawn timers or wait timers for things where its perfectly fine if its off by an entire second.
 
Level 18
Joined
Jul 2, 2011
Messages
2,161
As everyone else has already said

de-sync is caused by one computer running at a different time frame as another computer, essentially they are no longer synchronising the same events in game.

You can use the, 'wait in game time' trigger instead of the wait function

and you could try basically nothing else :|

good luck
 
Level 16
Joined
Nov 18, 2012
Messages
1,429
Good luck on making 123456 GUI timers to replace all waits.
This turned into a discussion between if timers are better than waits rather what causes desyncs.
It's already been said 123456 times waits don't have anything to do with desync, use them when you don't need true accuracy, else if you're a math timer maniac go ahead and use an numerous amount of timers for every moment which is time consuming and absurd in GUI.
 
Level 8
Joined
Mar 25, 2008
Messages
267
Good luck on making 123456 GUI timers to replace all waits.
This turned into a discussion between if timers are better than waits rather what causes desyncs.
It's already been said 123456 times waits don't have anything to do with desync, use them when you don't need true accuracy, else if you're a math timer maniac go ahead and use an numerous amount of timers for every moment which is time consuming and absurd in GUI.
Well there seems to be no reason for desyncs then because people report them at completely random times in my game.
Im thinking its all blizzards fault and they broke something bad internally.
 
Level 8
Joined
Mar 25, 2008
Messages
267
I got reports that this caused a desync, is there anything wrong with this?

  • Player - Player 1 (Red) types a chat message containing -color as A substring
  • Player Group - Pick every player in (Player group((Triggering player))) and do (Actions)
    • Loop - Actions
      • Set Colorpick = (Picked player)
      • Player Group - Pick every player in (All players) and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Entered chat string) Equal to -color red
              • (Color of (Picked player)) Not equal to Red
            • Then - Actions
              • Player - Change color of Colorpick to Red, Changing color of existing units
              • Game - Display to (Player group((Picked player))) for 2.00 seconds the text: ((Name of (Triggering player)) + has just changed their player color to Red!)
            • Else - Actions
              • Do nothing
Theres a event for every player slot and one of these for every color.
 
Last edited:
Level 8
Joined
Mar 25, 2008
Messages
267
Or could things like this cause a desync, if this unit is dead and removed from the game it is still part of the job trigger when you obtain the job, could calling on changing the ownership of a nonexistant unit cause desyncs?
yet this is part of all loaps and i have never heard of this caliber of desyncs, if it did i could add them all to unit groups and have it give ownership of the unit group and have them removed from the unit group after the job is obtained for the first time, other than that idk.
  • Unit - Change ownership of Officer 0038 <gen> to (Owner of (Triggering unit)) and Change color
 
Last edited:
Level 11
Joined
Dec 19, 2012
Messages
411
Please refrain from multiple posting, use edit instead. From site rules :
1. Double Posting
- Double posting, consequently posting multiple posts in sequence, is strictly prohibited.

Also, when posting GUI trigger, use [trigger]GUI trigger here[/trigger] tag, not [code] tag.


Back to topic :
The trigger you posted will not cause desync. Why do you have double pick player actions in the first place? Also, what Warcraft 3 version are your friends playing on?
 
Level 16
Joined
Nov 18, 2012
Messages
1,429
Well there seems to be no reason for desyncs then because people report them at completely random times in my game.
Im thinking its all blizzards fault and they broke something bad internally.
Yes it's a fact when they brought new patches they introduced more stuff but also broke a lot of other crap, and many more desyncs were happening. Maybe try to send your map to blizzard so they can fix it with next patch, Idk, seems like it worked with some people.
 
Level 8
Joined
Mar 25, 2008
Messages
267
Please refrain from multiple posting, use edit instead. From site rules :


Also, when posting GUI trigger, use [trigger]GUI trigger here[/trigger] tag, not [code] tag.


Back to topic :
The trigger you posted will not cause desync. Why do you have double pick player actions in the first place? Also, what Warcraft 3 version are your friends playing on?

I would imagine they are playing the latest live version if they are playing on battlenet.

Yes it's a fact when they brought new patches they introduced more stuff but also broke a lot of other crap, and many more desyncs were happening. Maybe try to send your map to blizzard so they can fix it with next patch, Idk, seems like it worked with some people.
How do you submit a map to blizzard?

Why do you have double pick player actions in the first place?
The first one selects the triggering player, the second one selects all players and makes sure they aren't using that color
 
Last edited:
Top