1. This forum is archived for reference. For support & bug reports visit the help section of forums.stardewvalley.net

Stardew Valley Multiplayer Beta: Known Issues & Fixes 2

Discussion in 'Support' started by Katzeus, Jun 4, 2018.

Thread Status:
Not open for further replies.
  1. SeanDaPaul

    SeanDaPaul Space Hobo

    Got a bug where in the Egg Festival when I talked to the adventures guild guy the game crashed. And my friend could not enter the mine without the game crashing. This is in the spring first year.
     

      Attached Files:

    • Mizzion

      Mizzion Phantasmal Quasar

      Bouhm likes this.
    • Pathoschild

      Pathoschild Tiy's Beard

      I tracked down the wedding ring bug.

      Why it happens:
      Game1.craftingRecipes is set to "Data//CraftingRecipes", then Stats loads "Data\\CraftingRecipes" and removes the wedding ring. Both refer to the same asset, so this removes the wedding ring from Game1.craftingRecipes too. That doesn't cause issues in the base game because it doesn't normalise asset names (SMAPI does), so there are two copies of the data.

      Proposed fix:
      Copying the dictionary in Stats.checkForCraftingAchievements prevents the stats logic from changing the original asset. Can you change this line:
      Code:
      Dictionary<string, string> dictionary = Game1.content.Load<Dictionary<string, string>>("Data\\CraftingRecipes");
      
      To this?
      Code:
      Dictionary<string, string> dictionary = new Dictionary<string, string>(Game1.content.Load<Dictionary<string, string>>("Data\\CraftingRecipes"));
      
      Alternate fix:
      A slightly more efficient fix is to just ignore the wedding ring when counting stats (both in the loop and the if check after it):
      Code:
      Dictionary<string, string> dictionary = Game1.content.Load<Dictionary<string, string>>("Data\\CraftingRecipes");
      int craftedRecipes = 0;
      int knownRecipes = 0;
      foreach (string key in dictionary.Keys)
      {
         if (key == "Wedding Ring")
            continue;
      
         if (Game1.player.craftingRecipes.ContainsKey(key))
         {
            knownRecipes += Game1.player.craftingRecipes[key];
            if (Game1.player.craftingRecipes[key] > 0)
               ++craftedRecipes;
         }
      }
      this.itemsCrafted = (uint)knownRecipes;
      if (craftedRecipes >= (recipes.Count - 1))
         Game1.getAchievement(22);
          // ...
      }
      
       
        Last edited: Jun 9, 2018
      • Lodrelhai

        Lodrelhai Scruffy Nerf-Herder

        Not so much a bug as bad timing. I'm in Spring Year 2, and Jodi just told me she went to Yorba's shrine to pray for her husband's safe return. Her husband returned 8 days ago and was standing a few squares behind her.
         
          GreyWays and majjaqui like this.
        • majjaqui

          majjaqui Void-Bound Voyager

          Game let me pick up a chest that had items in it when I accidently clicked on the full one instead of the empty one next to it. But when I put it back down, all the items that had been in the chest were now gone. In the previous version I don't believe it would let you pick up a chest that had something in the contents.
           
          • Tingcos

            Tingcos Space Hobo

            There is a bug when a bomb is placed by a farmhand in the caverns and the main farmer enters the same floor before it detonates causing the bomb to disappear without exploding. The fuse sound will continue playing until another bomb is detonated or the player leaves the floor
             
            • ashreecar

              ashreecar Orbital Explorer

              Was playing multiplayer with a friend and during the egg festival 1. Shane had no dialogue and then 2. when I (the host) tried to talk to Marlon, the game crashed??
               
              • Mizzion

                Mizzion Phantasmal Quasar

                Look at the 5th message above yours. It gives a link that will tell you how to fix the bug that happens when you try to talk to Marlon.
                 
                • Sabs like "labs"

                  Sabs like "labs" Scruffy Nerf-Herder

                  I can confirm I am having this issue. The issue is occurring whether or not I run the game using SMAPI.
                   
                  • Chameon

                    Chameon Void-Bound Voyager

                    “Connecting to online services...” I get stuck on this screen indefinitely. We are running two PCs, one desktop and one laptop. The laptop works perfectly fine when I go to co-op, but the desktop gets stuck. We’ve tried everything suggested; waiting it out, restarting and re installing steam and Stardew Valley, there are no mods or snapi on the desktop, we’ve swapped steam profiles on both computers (both accounts connect on the laptop, neither connect on the desktop). The desktop works perfectly fine with all the other multiplayer games we have on steam, so it’s not that steam isn’t connecting. There was ONCE where we got it to work, we turned steam to offline mode, then back to online, then started Stardew and hit shift+tab to bring the chat up and sent a message to the laptop. This got us past the online services and we played for two hours. Now it’s a few nights later and we started it up for the first time since then and it’s stuck on the same screen. We tried the same thing we did last time to fix it and it’s not working. Stardew and steam have both updated since then on both computers. Again the laptop works fine with Stardew. I’ve seen this issue mentioned a lot on other forums but not on this one and no one seems to be acknowledging it and I haven’t seen it appear on the “known issue list.”

                    Additionally, when we switch the desktop to offline mode we are able to get through co-op to the lan option, but his desktop only says “connection failed” when trying the LAN connection. I’m using the correct one from the Chucklefishs’ instructions.
                     
                      Last edited: Jun 9, 2018
                    • ScytheX13D

                      ScytheX13D Space Hobo

                      I experienced a crash when I first enter the Mine and first meet Marlon. It doesn't crash immediately but when the character text box appears the game freezes and then crashes. I first experienced the crash on the multiplayer with a friend and he experienced the same bug. I later played single player and experienced the same crash as well. However if I skip the cutscene before his dialogue happens the game still runs and the crash does not happen. Also during the Egg Festival I tried interacting with Marlon once again and when his text box showed up the game once again crashed just like the interaction with him in the mine for the first time.
                       
                      • Jeongzero

                        Jeongzero Space Hobo

                        Collaboration mode via 'STEAM' is not possible.
                        This is possible if 'STEAM' is not turned on.
                        It was not found in version 1.3.15 but was found in version 1.3.17.

                        "Connecting to Online Service ..." rings continuously on this screen. It works perfectly well with other multiplayer games I have, which does not mean that the steam is not connected. I was one place we could work, and I switched to Steam in offline mode, then back online, then started Stardew and started by pressing Shift + Tab. A few days later I tried to do the same thing I did last time. It does not work. Stardew and Steam have been updated on your computer. I have seen a lot of this problem in other forums, but I have not seen this issue in this forum. No one recognized it and it did not appear in the "Known Issues" list.
                         

                          Attached Files:

                          Last edited: Jun 9, 2018
                        • Iris Blanche

                          Iris Blanche Pudding Paradox Forum Moderator

                          Please note that all posts have to be in english or at least provide an english translation as stated in our forum rules.
                          I added a translation for you this time but make sure to add one on your own in the future. :nuruhappy:

                          EDIT
                          Also avoid double posting.
                           
                          • pinkeu.doll

                            pinkeu.doll Intergalactic Tourist

                            i'm playing on a macbook but for the "Stardew Valley\Contents\Resources\Content\Data" step i get stuck. my resources folder only contains a shortcuts file with the stardew valley icon?
                             
                            • Nakiamiir

                              Nakiamiir Guest

                              Bugs:
                              • After community center finishes, Pierre's store is still closed on Wednesdays to farmhand
                              • After motorscycle cutscene with Sebastian ended, the UI was gone and didn't return until game was reloaded
                              • Using a rain totem doesn't make the next day be rainy.
                              • It's forever sunny, with occasional storms but never any rainy day.
                               
                              • Koihime Nakamura

                                Koihime Nakamura Ketchup Robot

                                Version: 1.3.17
                                Can confirm that the farmhand not seeing the proper item description to donated items by host is now fixed.

                                Second note: I've updated USDVP to contain a fix for Marlon. ( https://community.playstarbound.com...rdew-valley-patch-v0-1-0.140405/#post-3288850 ) Use if you don't wish to use the XNB patch. Hopefully I'll be removing the update soon due to a beta update, but in the meantime.

                                And now, the replies combined into this post

                                So, this bug is fairly annoying, but it boils down to:
                                The text pulls from the unsynchronized world state. While it writes to Game1, it's never written *to*, so while the local clients still have the code in newDayAfterFade telling them that it'll be sunny, the networldstate may not know that. This is compounded by the fact that while the forecast text checks the pulled state, the picture does *not*, it checks the local world state.
                                A solution is fairly simple. Add this bit at the end of Game1::newDayAfterFade. This will ensure that the correct weather syncs.
                                Suggested Fix
                                Code:
                                if (Game1.IsMasterGame)
                                            {
                                                if (Game1.stats.DaysPlayed <= 4U && Game1.stats.DaysPlayed != 2)
                                                    Game1.netWorldState.Value.WeatherForTomorrow = Game1.weatherForTomorrow = Game1.weather_sunny;
                                                if (Game1.dayOfMonth == 28)
                                                    Game1.netWorldState.Value.WeatherForTomorrow = Game1.weatherForTomorrow = Game1.weather_sunny;
                                                if (Game1.dayOfMonth >= 13 && Game1.dayOfMonth <= 15 && Game1.currentSeason == "winter")
                                                    Game1.netWorldState.Value.WeatherForTomorrow = Game1.weatherForTomorrow = Game1.weather_sunny;
                                                if ((Game1.dayOfMonth == 12 || Game1.dayOfMonth == 25) && Game1.currentSeason == "summer")
                                                    Game1.netWorldState.Value.WeatherForTomorrow = Game1.weatherForTomorrow = Game1.weather_lightning;
                                            }
                                
                                And then do this in TV::setWeatherOverlay
                                From
                                Code:
                                        protected virtual void setWeatherOverlay()
                                        {
                                            switch (Game1.weatherForTomorrow)
                                            {
                                             ...
                                
                                to

                                Code:
                                    protected virtual void setWeatherOverlay()
                                        {
                                            int weatherForTommorow = Game1.netWorldState.Value.WeatherForTomorrow;
                                            switch (weatherForTommorow)
                                            {
                                            ....
                                
                                So I posted my mod as a fix, but let me explain what's going on. (again)
                                The function to reset gifts is ran every day. It checks against a generated date to determine if the week is different from the last gift sent. The problem is pretty simple here, and that is that the date isn't properly pulled from, so it may randomly be null values, or the default, which is 0 Spring Y1. Or it might actually trigger, say, as 1 Summer Y2. But as this is inconsistent, this may actually result in it not flipping over, or flipping over on a Wednesday, or what have you. Now, the other problem is that in 1.2 saves, these values *didn't exist*, so my mod has a retro script that fires to add fake days so that the code can properly run (if it ran), and patches the game to tell it to use a properly generated date. There are, correspondingly, one real fix.
                                Suggested Fix
                                Replace in NetWorldState.cs
                                Code:
                                        public WorldDate Date
                                        {
                                            get
                                            {
                                                return new WorldDate(this.year, this.currentSeason, this.dayOfMonth);
                                            }
                                        }
                                
                                with
                                Code:
                                        public WorldDate Date
                                        {
                                            get
                                            {
                                                return new WorldDate(this.year.Value, this.currentSeason.Value, this.dayOfMonth.Value);
                                            }
                                        }
                                
                                And finally, I'll just quote someone else for the animal bug:
                                I've reported the Shane and there's a Sewer getFish issue, upstream in this thread.

                                Hope you find this of use.
                                 
                                  Last edited: Jun 9, 2018
                                • Mizzion

                                  Mizzion Phantasmal Quasar

                                  I'm not sure where/how to get to the sections needed for anything other than Windows, sorry. Perhaps someone else who plays on a MacBook, will come and be of more use.
                                   
                                  • Koihime Nakamura

                                    Koihime Nakamura Ketchup Robot

                                    Yeah, that's due to this snippet:

                                    Code:
                                      public void lockedDoorWarp(string[] actionParams)
                                            {
                                                if (Utility.isFestivalDay(Game1.dayOfMonth, Game1.currentSeason) && Utility.getStartTimeOfFestival() < 1900)
                                                    Game1.drawObjectDialogue(Game1.parseText(Game1.content.LoadString("Strings\\Locations:FestivalDay_DoorLocked")));
                                                else if (actionParams[3].Equals("SeedShop") && Game1.shortDayNameFromDayOfSeason(Game1.dayOfMonth).Equals("Wed") && !Game1.player.eventsSeen.Contains(191393))
                                                    Game1.drawObjectDialogue(Game1.parseText(Game1.content.LoadString("Strings\\Locations:SeedShop_LockedWed")));
                                              ....
                                    
                                    The fix is fairly simple, rather than !Game1.player.eventsSeen.Contains(191393), it should just check the master player:

                                    Code:
                                      public void lockedDoorWarp(string[] actionParams)
                                            {
                                                if (Utility.isFestivalDay(Game1.dayOfMonth, Game1.currentSeason) && Utility.getStartTimeOfFestival() < 1900)
                                                    Game1.drawObjectDialogue(Game1.parseText(Game1.content.LoadString("Strings\\Locations:FestivalDay_DoorLocked")));
                                                else if (actionParams[3].Equals("SeedShop") && Game1.shortDayNameFromDayOfSeason(Game1.dayOfMonth).Equals("Wed") && !Game1.MasterPlayer.eventsSeen.Contains(191393))
                                                    Game1.drawObjectDialogue(Game1.parseText(Game1.content.LoadString("Strings\\Locations:SeedShop_LockedWed")));
                                              ....
                                    
                                    This is a third bug due to !Game1.IsMultiplayer being in places from 1.0 onward. (Although Shane's event appears to have been added whenever Shane's event was added as content. )

                                    (As a note, you might want to look at pre 1.3 code to see where that variable was used and check those are all intended lockouts. Also, check for Implicit Conversion. It'd probably eliminate a lot of the unconfirmable bugs.)

                                    From 1.07

                                    Code:
                                    if (!Game1.IsMultiplayer && !Utility.isFestivalDay(Game1.dayOfMonth + 1, Game1.currentSeason))
                                    {
                                    Game1.weatherForTomorrow = 1;
                                    Game1.pauseThenMessage(2000, "Clouds gather in the distance...", false);
                                    }
                                    
                                    The fix is pretty simple (although you may want to restrict it to the host player, I dunno.)

                                    Code:
                                    if (!Utility.isFestivalDay(Game1.dayOfMonth + 1, Game1.currentSeason))
                                    {
                                    Game1.netWorldState.Value.WeatherForTomorrow = Game1.weatherForTomorrow = 1;
                                    Game1.pauseThenMessage(2000, "Clouds gather in the distance...", false);
                                    }
                                    

                                    is this recurring? Also, what season are you in? It's entirely possible in Summer to get an uninterrupted sunny span.
                                     
                                    • 999cranberries

                                      999cranberries Big Damn Hero

                                      Have donated more than enough items in a multiplayer game but no sewer key. Back when items still disappeared if you moved them, we lost a lot of our donations but have since re-donated all those items.
                                       
                                      • One More Day

                                        One More Day Cosmic Narwhal

                                        @Koihime Nakamura

                                        While I really do appreciate the effort you've gone to in your replies, and I hope they are of use to others in the same situation as me, I am so programming illiterate that I literally don't understand anything about your answers, so I'll just have to wait for an official fix, and hope that it comes soon.
                                         
                                        Thread Status:
                                        Not open for further replies.

                                        Share This Page