Custom Multiplayer: Tangent Games??

LOST_Creator

New Member
Reaction score
0
De-Sync in Custom Map??

I have been spending the majority of my time on a map I like to call "LOST: The Game". It is a 12-person map that I have designed utilizing custom heroes, abilities, buildings, items and quests specific to each player as well as shared quests all taking place on an epic island filled with many interior locations.

Recently with he have been experiencing issues I've been calling "tangent games" for lack of a better term. While playing and hosting the lap from LAN with 4 people situations have occurred where the game timeline forks creating a separate scenario for 2 players in which the other 2 players become controlled by AI. The 2 players connected to each game can see each others chat, but cannot communicate with the players in the "tangent game". Both pairs can continue playing the game in their separate "tangent games" but can never interact with the "tangent players"... (cue :confused:)

It has happened numerous times (as well as 3 player games) but seems to not occur when there are only 2 players playing. I have not been able to test the game online, but would like to. The first occurrence I noticed was during a 3 player LAN game when an item dropped on death from a neutral hostile hero both players picked up the item. This created the "tangent game" in which player 1 had the item and player 2 did not, and player 2 & 3 were no longer user-controlled. In their "tangent game" player 2 had received the item and was able to interact with player 3, while player 1 was not.

At this time I would like to apologize for the length of my query, but I feel like I have literally hit a brick wall in this mapmaking process (cue :banghead:) and would REALLY appreciate any insight from those who have experienced similar problems, advanced mapmakers, or anyone who has taken the time to finish reading this. Please help me finish this map!!
 

LOST_Creator

New Member
Reaction score
0
Desynching code?

Can you elaborate more as to what a desynching code may be?? I have a trigger within the map that I have added within the past month which may have been the origin of all of these problems.

It involves a timer tied to a computer. The player must type in a message (the numbers) to make the lever vulnerable to be pushed, which resets the timer. In all of the tangent games this timer expires causing an event in one game and the timer resets normally in the other tangent game. I am not sure if this may be the code that is causing this or a byproduct of the person's job of pushing the timer being in the tangent game.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
Can you elaborate more as to what a desynching code may be?? I have a trigger within the map that I have added within the past month which may have been the origin of all of these problems.

It involves a timer tied to a computer. The player must type in a message (the numbers) to make the lever vulnerable to be pushed, which resets the timer. In all of the tangent games this timer expires causing an event in one game and the timer resets normally in the other tangent game. I am not sure if this may be the code that is causing this or a byproduct of the person's job of pushing the timer being in the tangent game.

are you using any kind of "GetLocalPlayer" actions? these are mainly the reason for a desync.
 

LOST_Creator

New Member
Reaction score
0
Hey I'm not sure what kind of action 'GetLocalPlayer' is but I'm almost positive I am not using it. There are alot of triggers to make sure my code for "The button" which is a lever connected to a timer in which the user must enter in a code 1 minute prior to expiration of the timer to make a lever vulnerable, which when destroyed resets the timer. Anyways this is how this is how it works.

TRIGGER 1

EVENT
Unit - Kelvin Inman 0051 <gen> Dies

function Trig_The_Button_Copy_2_Actions takes nothing returns nothing
call TriggerSleepAction( 1.00 )
call UnitSuspendDecayBJ( true, gg_unit_n016_0051 )
set udg_FailSafeKey = RandomItemInRectSimpleBJ(gg_rct_Region_194)
call TriggerSleepAction( 3.00 )
call QuestMessageBJ( bj_FORCE_PLAYER[2], bj_QUESTMESSAGE_UPDATED, "TRIGSTR_1697" )
call CreateQuestBJ( bj_QUESTTYPE_REQ_DISCOVERED, "TRIGSTR_1698", "TRIGSTR_1699", "ReplaceableTextures\\CommandButtons\\BTNAbsorbMagic.blp" )
set udg_TheButton = GetLastCreatedQuestBJ()
call QuestSetEnabledBJ( true, udg_TheButton )
call QuestSetDiscoveredBJ( udg_TheButton, true )
call FlashQuestDialogButtonBJ( )
call CreateFogModifierRectBJ( true, Player(2), FOG_OF_WAR_VISIBLE, gg_rct_HatchDoor )
call PingMinimapLocForForceEx( bj_FORCE_PLAYER[2], GetRectCenter(gg_rct_HatchDoor), 10.00, bj_MINIMAPPINGSTYLE_FLASHY, 100, 100, 100 )
call StartTimerBJ( udg_Timer1, false, 240.00 )
call CreateTimerDialogBJ( udg_Timer1, "TRIGSTR_1700" )
set udg_Window = GetLastCreatedTimerDialogBJ()
call TimerDialogSetTitleColorBJ( udg_Window, 100, 0.00, 0.00, 0 )
call TimerDialogSetTimeColorBJ( udg_Window, 100, 100.00, 100.00, 0 )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(0) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(1) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(3) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(4) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(5) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(6) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(7) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(8) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(9) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(10) )
call TimerDialogDisplayForPlayerBJ( false, udg_Window, Player(11) )
call TimerDialogDisplayForPlayerBJ( true, GetLastCreatedTimerDialogBJ(), Player(2) )
endfunction

//===========================================================================
function InitTrig_The_Button_Copy_2 takes nothing returns nothing
set gg_trg_The_Button_Copy_2 = CreateTrigger( )
call TriggerRegisterUnitEvent( gg_trg_The_Button_Copy_2, gg_unit_n016_0051, EVENT_UNIT_DEATH )
call TriggerAddAction( gg_trg_The_Button_Copy_2, function Trig_The_Button_Copy_2_Actions )
endfunction

TRIGGER 2

EVENT
Unit - A unit enters The Button <gen>

function Trig_The_Button2_Copy_Func001001 takes nothing returns boolean
return ( IsQuestDiscovered(udg_TheButton) == true )
endfunction

function Trig_The_Button2_Copy_Func001002 takes nothing returns boolean
return ( IsQuestCompleted(udg_TheButton) == false )
endfunction

function Trig_The_Button2_Copy_Conditions takes nothing returns boolean
if ( not GetBooleanAnd( Trig_The_Button2_Copy_Func001001(), Trig_The_Button2_Copy_Func001002() ) ) then
return false
endif
return true
endfunction

function Trig_The_Button2_Copy_Actions takes nothing returns nothing
call QuestMessageBJ( bj_FORCE_PLAYER[2], bj_QUESTMESSAGE_UPDATED, "TRIGSTR_1701" )
call EnableTrigger( gg_trg_The_Button_4 )
call DisableTrigger( GetTriggeringTrigger() )
endfunction

//===========================================================================
function InitTrig_The_Button2_Copy takes nothing returns nothing
set gg_trg_The_Button2_Copy = CreateTrigger( )
call TriggerRegisterEnterRectSimple( gg_trg_The_Button2_Copy, gg_rct_The_Button )
call TriggerAddCondition( gg_trg_The_Button2_Copy, Condition( function Trig_The_Button2_Copy_Conditions ) )
call TriggerAddAction( gg_trg_The_Button2_Copy, function Trig_The_Button2_Copy_Actions )
endfunction

TRIGGER 3

EVENT
Destructible - Button 2830 <gen> dies

function Trig_The_Button3_Func001001 takes nothing returns boolean
return ( IsQuestDiscovered(udg_TheButton) == true )
endfunction

function Trig_The_Button3_Func001002 takes nothing returns boolean
return ( IsQuestCompleted(udg_TheButton) == false )
endfunction

function Trig_The_Button3_Conditions takes nothing returns boolean
if ( not GetBooleanAnd( Trig_The_Button3_Func001001(), Trig_The_Button3_Func001002() ) ) then
return false
endif
return true
endfunction

function Trig_The_Button3_Actions takes nothing returns nothing
call DisableTrigger( GetTriggeringTrigger() )
call PauseTimerBJ( true, udg_Timer1 )
call TimerDialogDisplayBJ( false, GetLastCreatedTimerDialogBJ() )
call QuestMessageBJ( bj_FORCE_PLAYER[2], bj_QUESTMESSAGE_UPDATED, "TRIGSTR_798" )
call QuestSetCompletedBJ( udg_TheButton, true )
call DestructableRestoreLife( gg_dest_DTlv_2830, GetDestructableMaxLife(gg_dest_DTlv_2830), true )
call SetDestructableInvulnerableBJ( gg_dest_DTlv_2830, true )
call CreateFogModifierRectBJ( true, Player(2), FOG_OF_WAR_VISIBLE, gg_rct_DesmondsHatch )
set udg_SeeSwan = GetLastCreatedFogModifier()
call CreateQuestBJ( bj_QUESTTYPE_REQ_DISCOVERED, "TRIGSTR_815", "TRIGSTR_816", "ReplaceableTextures\\CommandButtons\\BTNStaffOfPreservation.blp" )
call SetUnitOwner( gg_unit_n018_0221, Player(2), true )
call SetUnitOwner( gg_unit_n005_0032, Player(2), true )
call SetUnitOwner( gg_unit_n006_0033, Player(2), true )
call SetUnitOwner( gg_unit_n004_0110, Player(2), true )
call SetUnitOwner( gg_unit_n002_0000, Player(2), true )
call SetUnitOwner( gg_unit_n018_0219, Player(2), true )
call SetUnitOwner( gg_unit_n018_0220, Player(2), true )
set udg_TheSwan = GetLastCreatedQuestBJ()
call QuestSetEnabledBJ( true, udg_TheSwan )
call QuestSetDiscoveredBJ( udg_TheSwan, true )
call FlashQuestDialogButtonBJ( )
call StartTimerBJ( udg_Timer2, false, 900.00 )
call CreateTimerDialogBJ( udg_Timer2, "TRIGSTR_819" )
set udg_Timer_Window = GetLastCreatedTimerDialogBJ()
call TimerDialogSetTitleColorBJ( GetLastCreatedTimerDialogBJ(), 0.00, 25.00, 75.00, 0 )
call TimerDialogSetTimeColorBJ( GetLastCreatedTimerDialogBJ(), 0.00, 75.00, 75.00, 0 )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(0) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(1) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(3) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(4) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(5) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(6) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(7) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(8) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(9) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(10) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(11) )
call TimerDialogDisplayForPlayerBJ( true, udg_Timer_Window, Player(2) )
call EnableTrigger( gg_trg_Push_it )
endfunction

//===========================================================================
function InitTrig_The_Button3 takes nothing returns nothing
set gg_trg_The_Button3 = CreateTrigger( )
call TriggerRegisterDeathEvent( gg_trg_The_Button3, gg_dest_DTlv_2830 )
call TriggerAddCondition( gg_trg_The_Button3, Condition( function Trig_The_Button3_Conditions ) )
call TriggerAddAction( gg_trg_The_Button3, function Trig_The_Button3_Actions )
endfunction


TRIGGER 4

EVENT
Player - Player 3 (Teal) types a chat message containing 4 8 15 16 23 42 as An exact match


function Trig_The_Button_4_Func001001 takes nothing returns boolean
return ( IsQuestDiscovered(udg_TheButton) == true )
endfunction

function Trig_The_Button_4_Func001002 takes nothing returns boolean
return ( IsQuestCompleted(udg_TheButton) == false )
endfunction

function Trig_The_Button_4_Conditions takes nothing returns boolean
if ( not GetBooleanAnd( Trig_The_Button_4_Func001001(), Trig_The_Button_4_Func001002() ) ) then
return false
endif
return true
endfunction

function Trig_The_Button_4_Actions takes nothing returns nothing
call QuestMessageBJ( bj_FORCE_PLAYER[2], bj_QUESTMESSAGE_UPDATED, "TRIGSTR_797" )
call SetDestructableInvulnerableBJ( gg_dest_DTlv_2830, false )
call DisableTrigger( GetTriggeringTrigger() )
endfunction

//===========================================================================
function InitTrig_The_Button_4 takes nothing returns nothing
set gg_trg_The_Button_4 = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_The_Button_4, Player(2), "4 8 15 16 23 42", true )
call TriggerAddCondition( gg_trg_The_Button_4, Condition( function Trig_The_Button_4_Conditions ) )
call TriggerAddAction( gg_trg_The_Button_4, function Trig_The_Button_4_Actions )
endfunction

TRIGGER 5

EVENT
Destructible - Button 2830 <gen> dies

function Trig_The_Button3_Copy_Func003001 takes nothing returns boolean
return ( IsQuestDiscovered(udg_TheSwan) == true )
endfunction

function Trig_The_Button3_Copy_Func003002 takes nothing returns boolean
return ( TimerGetRemaining(udg_Timer2) <= 60.00 )
endfunction

function Trig_The_Button3_Copy_Conditions takes nothing returns boolean
if ( not GetBooleanAnd( Trig_The_Button3_Copy_Func003001(), Trig_The_Button3_Copy_Func003002() ) ) then
return false
endif
return true
endfunction

function Trig_The_Button3_Copy_Actions takes nothing returns nothing
call DisableTrigger( GetTriggeringTrigger() )
call PauseTimerBJ( true, udg_Timer2 )
call DestroyTimerDialogBJ( udg_Timer_Window )
call DestructableRestoreLife( gg_dest_DTlv_2830, GetDestructableMaxLife(gg_dest_DTlv_2830), true )
call SetDestructableInvulnerableBJ( gg_dest_DTlv_2830, true )
call StartTimerBJ( udg_Timer2, false, 900.00 )
call CreateTimerDialogBJ( udg_Timer2, "TRIGSTR_821" )
set udg_Timer_Window = GetLastCreatedTimerDialogBJ()
call TimerDialogSetTitleColorBJ( udg_Timer_Window, 0.00, 25.00, 75.00, 0 )
call TimerDialogSetTimeColorBJ( udg_Timer_Window, 0.00, 75.00, 75.00, 0 )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(0) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(1) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(3) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(4) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(5) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(6) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(7) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(8) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(9) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(10) )
call TimerDialogDisplayForPlayerBJ( false, udg_Timer_Window, Player(11) )
call TimerDialogDisplayForPlayerBJ( true, udg_Timer_Window, Player(2) )
call TimerDialogDisplayForPlayerBJ( true, udg_Timer_Window, udg_NewHatchGuy )
call EnableTrigger( gg_trg_The_Button_5 )
endfunction

//===========================================================================
function InitTrig_The_Button3_Copy takes nothing returns nothing
set gg_trg_The_Button3_Copy = CreateTrigger( )
call TriggerRegisterDeathEvent( gg_trg_The_Button3_Copy, gg_dest_DTlv_2830 )
call TriggerAddCondition( gg_trg_The_Button3_Copy, Condition( function Trig_The_Button3_Copy_Conditions ) )
call TriggerAddAction( gg_trg_The_Button3_Copy, function Trig_The_Button3_Copy_Actions )
endfunction


Well thats the MEAT of one of my more complex triggers that may be causing the desync. PLEASE let me know if you see anything within these triggers that may be causing this annoyance. Much appreciated!!
 

LOST_Creator

New Member
Reaction score
0
Damniit, well Im gonna spend some time and look through all my triggers soon, theres just so god damn many!! Can you give me some ideas on what to look for that could cause a desync?? I'm not a very experienced map maker, I've pretty much taught myself the World Editor. Recently I've been using what I call "double variables" or variables based off of other variables. Although I doubt it could this potentially cause a de-sync?? Im just really new to this problem and I have no idea where to start looking.... Could you elaborate on what a 'Get Local Player' action is and where I can find it under the trigger menu (What type of trigger is it??). Anyways thanks so much for taking a look, I've got a bunch of people who are anxious to play the map and I feel like I've wasted a year of my efforts towards a a map that will never work :banghead:. Please let me if you have experienced a de-sync before, what happened, and how you corrected it. Any further guidance/advice would be much appreciated. Thanks again!!
 
Reaction score
91
Just search for [ljass]GetLocalPlayer()[/ljass] anywhere in your triggers (check every line of code). If you have it, post the specific trigger which contains it here.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
Damniit, well Im gonna spend some time and look through all my triggers soon, theres just so god damn many!! Can you give me some ideas on what to look for that could cause a desync?? I'm not a very experienced map maker, I've pretty much taught myself the World Editor. Recently I've been using what I call "double variables" or variables based off of other variables. Although I doubt it could this potentially cause a de-sync?? Im just really new to this problem and I have no idea where to start looking.... Could you elaborate on what a 'Get Local Player' action is and where I can find it under the trigger menu (What type of trigger is it??). Anyways thanks so much for taking a look, I've got a bunch of people who are anxious to play the map and I feel like I've wasted a year of my efforts towards a a map that will never work :banghead:. Please let me if you have experienced a de-sync before, what happened, and how you corrected it. Any further guidance/advice would be much appreciated. Thanks again!!
GetLocalPlayer returns a player which is the user himself at every computer, this means if 12 players play a game where GetLocalPlayer is called it returns different values for each different player.
Its used to make actions happen for a single player only which would normally effect everybody, like fade-out for example.
it works something like this, maybe you understand better with an example:
(BEWARE HANDWRITTEN!)
Trigger:
  • Actions
    • custom script: udg_TempPlayer = (GetLocalPlayer)
    • custom script: if udg_TempPlayer Equal Player 1 (Red)
    • Cinematic - Fade-out over 2.00 seconds using texture white Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
    • Game - Display to (All players) the text: (Name of TempPlayer)
    • custom script: endif

this trigger would make the screen fade out for player 1 red ONLY and show him the message and only him. it will happen only for his computer and nobody will notice.
This particular trigger will not cause desync because the actions do not effect gameplay.
actions which will cause desync if used together with GetLocalPlayer are for example (as far as i know) all "Unit - xyz" actions such as "Unit - Kill Unit" and such. It would result in one player playing a totally different game then others if actions like these would happen for a local player only.
 

LOST_Creator

New Member
Reaction score
0
Just search for [ljass]GetLocalPlayer()[/ljass] anywhere in your triggers (check every line of code). If you have it, post the specific trigger which contains it here.
Alright, but I don't use custom scripts, does that make any difference?

Also, do I have to convert each trigger to Custom Text before I search for GetLocalPlayer()?
(I assume this is what you meant by check every line, just making sure)
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
you can use GetLocalPlayer with Jass only anyhow, if you use plain GUI you are pretty much likely not using it. forget about GetLocalPlayer if you dont know what it is and neither did you use some system made by somebody else i am pretty sure its something else is your problem.
 

LOST_Creator

New Member
Reaction score
0
Alright, but I don't use custom scripts, does that make any difference?

Also, do I have to convert each trigger to Custom Text before I search for GetLocalPlayer()?
(I assume this is what you meant by check every line, just making sure)
I looked through alot of my suspicious codes and found alot of GetMatchingPlayer, GetTriggeringPlayer, ect. but none of them said GetLocalPlayer yet. I probably don't know how to do that :p
 

LOST_Creator

New Member
Reaction score
0
GetLocalPlayer returns a player which is the user himself at every computer, this means if 12 players play a game where GetLocalPlayer is called it returns different values for each different player.
Its used to make actions happen for a single player only which would normally effect everybody, like fade-out for example.
it works something like this, maybe you understand better with an example:
(BEWARE HANDWRITTEN!)
Trigger:
  • Actions
    • custom script: udg_TempPlayer = (GetLocalPlayer)
    • custom script: if udg_TempPlayer Equal Player 1 (Red)
    • Cinematic - Fade-out over 2.00 seconds using texture white Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
    • Game - Display to (All players) the text: (Name of TempPlayer)
    • custom script: endif

this trigger would make the screen fade out for player 1 red ONLY and show him the message and only him. it will happen only for his computer and nobody will notice.
This particular trigger will not cause desync because the actions do not effect gameplay.
actions which will cause desync if used together with GetLocalPlayer are for example (as far as i know) all "Unit - xyz" actions such as "Unit - Kill Unit" and such. It would result in one player playing a totally different game then others if actions like these would happen for a local player only.
Thanks so much for your detailed reply! I don't use custom scripts in my map though, could I be using that command in another way perhaps? And as for your final comment I have countless action triggers involving killing, and moving units for GetOwningPlayer() or GetTriggeringUnit() but I don't believe any of them have GetLocalPlayer(). There must be some other reason for the desync. I plan on testing the map soon, it would just be nice to have some idea what I'm looking for before I do so.
 

LOST_Creator

New Member
Reaction score
0
you can use GetLocalPlayer with Jass only anyhow, if you use plain GUI you are pretty much likely not using it. forget about GetLocalPlayer if you dont know what it is and neither did you use some system made by somebody else i am pretty sure its something else is your problem.
Yup I am using plain of Warcraft 3: The Frozen Throne World Editor version 1.24e (6059). What is odd is that I am able to host other warcraft 3 games over my LAN with 4 players, but with my map it seems that I always have this desync issue about 20 minutes into the game if there are more than 2 players. I have recently added in quests to the game that only certain players are able to complete, could this be a potential cause to the desync?
 

tooltiperror

Super Moderator
Reaction score
231
Converted GUI Trigger is worthless.

Post your triggers.
 

LOST_Creator

New Member
Reaction score
0
Here's one of my more complicated ones:

Code:
[B]EVENT[/B]
Destructible - Button 2830 <gen> dies

[B]CONDITION[/B]
((TheSwan is discovered) Equal to True) and ((Remaining time for Timer2) Less than or equal to 60.00)

[B]ACTION[/B]
Trigger - Turn off (This trigger)

Countdown Timer - Pause Timer2

Countdown Timer - Destroy Timer_Window

Destructible - Resurrect Button 2830 <gen> with (Max life of Button 2830 <gen>) life and Show birth animation

Destructible - Make Button 2830 <gen> Invulnerable

Countdown Timer - Start Timer2 as a One-shot timer that will expire in 900.00 seconds

Countdown Timer - Create a timer window for Timer2 with title The Button

Set Timer_Window = (Last created timer window)

Countdown Timer - Change the color of the title for Timer_Window to (0.00%, 25.00%, 75.00%) with 0.00% transparency

Countdown Timer - Change the color of the time for Timer_Window to (0.00%, 75.00%, 75.00%) with 0.00% transparency

Countdown Timer - Hide Timer_Window for Player 1 (Red)

Countdown Timer - Hide Timer_Window for Player 2 (Blue)

...ect....

Countdown Timer - Hide Timer_Window for Player 12 (Brown)

Countdown Timer - Show Timer_Window for Player 3 (Teal)

Trigger - Turn on The Button 5 <gen>


Not sure if there's anything there.. Anyone have any idea what kind of triggers I can make in the GUI that could cause this?? I have no idea what type of triggers to look for
 

LOST_Creator

New Member
Reaction score
0
Another person posted this on a different form where I asked the same question:

This problem is probably caused by quests since they're only meant for single player games. Remove all quests (and save first then remove the quest if it dosen't work!) and the map should work properly.

It seems likely as it is a new problem and I recently added in quests. If this is the case, does anyone know a way to implement in the quests without causing this problem (de-sync)?
 

tooltiperror

Super Moderator
Reaction score
231
First of all, don't double/triple post, just use the edit button (
edit.gif
) and edit your message.

Secondly, I'm sorry, but I can't help, I don't know how GUI desyncs.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top