Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Market Day Online Multiplayer Bugs #5

Open
brucethemoose opened this issue May 31, 2022 · 8 comments
Open

Market Day Online Multiplayer Bugs #5

brucethemoose opened this issue May 31, 2022 · 8 comments

Comments

@brucethemoose
Copy link

Market Day has a few client-specific bugs in online multiplayer games:

  • Some of the market day generated NPCs are invisible for the client. They appear as walking shadows, and their portraits are empty when interacted with, as seen below. This happens consistently.
    Host:
    hostinvisnpc
    Client:
    clientinvisnpc
    clientnpctalks

  • The client can't open the inventories of any other shops, but the host can without issue. Nothing seems to trigger this, it happens right when the shops open and before the host tries to open any inventory. This is also consistent, seemingly happening every market day.

  • The shop stalls are cleaned up for the host the next day, but stay in town for the client. Host:
    hostleftovers
    Client:
    clientleftovers

Here is the host log: https://smapi.io/log/c24886cf595d4873b9287ed3a144419e

Here is the client log: https://smapi.io/log/56a40e6c6aec470e9b6a092c0df012c0

Both have the mod's verbose debugging option enabled. I attached both below in case they somehow get lost:
ErrorLogs.zip

@brucethemoose
Copy link
Author

brucethemoose commented May 31, 2022

@aedenthorn You might be interested in the first bullet point, as it pertains to the random npcs mod I think?

@brucethemoose
Copy link
Author

brucethemoose commented May 31, 2022

is it the tables or the chests that persist? if the tables, why does Content Patcher feel the need to draw them? what's the value of the CP token?

To elaborate on this, what you see above it what persists the next day, but there is also some "invisible" terrain that the client still collides with. For instance, even though the chests aren't there, the client can't walk where the chests normally are.

If you need any debug values (like Content Patcher tokens?), let me know the command to get them. We are also running the debug overlay mod that can inspect tiles.

@aedenthorn
Copy link

yes, random npcs won't likely work in multiplayer

@brucethemoose
Copy link
Author

One other quirk: the client gets their market day mail late, seemingly only when the host restarts.

@brucethemoose
Copy link
Author

brucethemoose commented Jun 2, 2022

Another quirk: the wooden stalls were invisible for the client once, and the host had just restarted the game earlier that week.

Host log: https://smapi.io/log/b543600eef0e466fb39f25591ed83a45

Client log: https://smapi.io/log/a377587ceaca4e85b43e8a69a2787ad3

20220601201814_1

@brucethemoose
Copy link
Author

These issues seem to occur in market day by itself, in a new save, with no other mods.

Host: https://smapi.io/log/fd36daf80ab4470abb47b4c0bcd1a721

Client: https://smapi.io/log/26ca1840b02e4888a4a952b109d569ec
Capture

@brucethemoose
Copy link
Author

Here is a client log where I got some actual errors trying to interact with an npc shop: https://smapi.io/log/a6700751de884a7d99d9f736c6f80544

Host: https://smapi.io/log/171b376dd3e1428cafc1fb8889328f3a

@SinZ163
Copy link

SinZ163 commented Feb 5, 2023

@ceruleandeep FYI the issues regarding the wooden stalls being desynced for farmhands was fixed in SMAPI 3.18 in december (SMAPI was not properly invalidating maps on farmhands as farmhands have a map cache which was not being cleaned), still some odd quirks the day farmhands join/leave, but its mostly fine.

The issue regarding farmhands being unable to open npc shops is due to the ItemPriceAndStock never being set, and falling back to invalid sell price arrays made by GrangeShop.getSellPriceArrayFromShopStock (vanilla does explicit [1] index reads which fail on an int[1] array), though it looks like a good amount of work to actually get the ItemPriceAndStock to actually be synchronized (or a farmhand version of it that reads the grange chest, though would need to still work out the currency still)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants