aclist / dztui

DayZ GUI server browser and frontend for Linux
https://aclist.github.io/dzgui/dzgui
GNU General Public License v3.0
89 stars 10 forks source link

Missing PBO #16

Closed SteveIDusa closed 2 years ago

SteveIDusa commented 2 years ago

@aclist

DZGUI has been working flawlessly, been very happy with the project. Today however, started getting a missing pbo error when launching the game. Deleted all mods, unsubscribed from all mods and then restarted the system. Went back to Steam and launched DayZ proper to to confirm that its default launcher could see no mods. It showed clear, then went back to DZGUI and launched which then provided the link page and all mods were then subscribed to and downloaded again. This however did not resolve the issue.

Out of curiosity I then launched the DayZ Launcher and it did show all of the mods as listed but showing corrupted as normal. Poking around in the launcher I was able to find the links to manipulate the folders for the mods. I tried the defaults and I even tried adding the /home/MyUserName/.local/share/Steam/steamapps/workshop/content/221100 folder as both a "watched folder" or as the replacement for the default. Again, this is in the DayZ Launcher and this is where it gets interesting for me.

The initial missing pbo error gave when launching from DZGUI: (Blackouts Snakes; GDZ-Crossbow) (Missing PBO.(@Blackouts Snakes\addons\vg7_snakes.pbo))

After adding the folder location above to the watched folders in the DayZ Launcher, suddenly the Blackouts Snakes portion stopped being displayed??? I know that seems weird right, except without really thinking about it I had launched DayZ from within the DayZ Launcher. Which launched the game and got me to the character screen with pbo error being one less missing file....

I was however not able to resolve the GDZ-Crowsbow portion even though both are in the watch folder.

I then tried a couple of different version of proton to no avail, it does not seem to matter which I try. When I use DZGUI I get the same pbo error, if I try from the DayZ Launcher I can manage to get the error to reduce to the GDZ-Crossbow but am not able to resolve both.

Server ID: 13328284

I suspect this had nothing to do with DZGUI, but I thought I had better just bring it to your attention in case there is something that the game devs are working on that changed something? I was very surprised that I could launch the game with the mods from the DayZ Launcher..

Took a walk and thought about it. Came back and decided to review steps. Went over to https://www.battlemetrics.com/servers/dayz/13328284 and realized that the 1st mod on the list is the GDZ-Crossbows link, but when I click it, out of curiosity, it takes me to a Call of Duty: Modren Warfare 3 Screenshot. The others take me to the mod page on the workshop. Doubt it has anything to do with it, but weird all the same.

aclist commented 2 years ago

Hi, thanks for the message.

No, your surmises at the end were precisely correct after you did some sleuthing about the mod in the list. This is a duplicate of https://github.com/aclist/dztui/issues/13. If something doesn't seem right, it probably isn't.

I have already raised this issue three times directly to the BattleMetrics developers, and they have yet to address it.

Here's the gist: the server sends an encoded response with the server modlist, rules, playercount, etc. BattleMetrics uses Valve's A2S protocol to query this and decode it, then return the results in JSON via their API. The problem is that they clearly have a bug in their A2S implementation, so it is mangling the result into a single mod link with the wrong number (notice the illegal characters around it).

What it's supposed to return is Blackout Snakes, GDZ-Crossbow in that order. There's nothing to download at the link they give us (it's just a malformed link to the publishedfileid of a screenshot), so we can never fetch the right mod, and since the result they sent is malformed, it doesn't even include a link to Blackout Snakes.

The fact that one or the other shows up in the PBO warning on DayZ doesn't necessarily mean that a particular one is missing. While it does mean that something is missing, the servers check for mods in a linear manner, so if Blackout Snakes and GDZ-Crossbow are adjacent to each other, it might halt there and the error might list both of them (i.e., missing everything after the first one found missing). You might have one of the mods already from some other server.

Anyway, the fact of the matter is that this is an intractable dilemma unless they fix their decoding method. It is super annoying, and I can't estimate how many other servers might be like this. (This is the 2nd report of its kind.)

The best solution I see forward is cutting the cord and creating a custom A2S query API that doesn't depend on BattleMetrics. (We would still use them for unified server ID numbers, but retrieve the server modlist ourselves--correctly.) This is a lot of work for now, but I know it would fix an unspecified large number of broken servers. Taking this route would also require us to ship another file alongside DZGUI (local API method) or host the API offsite (don't really want to do that).

I think I may have a third possible option, but I need to think about it a bit. Please direct further correspondence on this matter to #13, thanks!