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

wrong subscription. #36

Closed SuperDaveAU closed 1 year ago

SuperDaveAU commented 2 years ago

Info DZGUI version: 2.6.1 Mode (normal/debug): normal and debug Server ID: 13066407 Linux distribution: SteamOS

Bug description

When running this in either game mode or the desktop I get the same result. When selecting server 13066407 in the list it then brings up the following prompt.

"Missing mods. Click [Open] to open mod 1396978764 in Steam Workshop and subscribe to it by clicking the green Subscribe button. After the mod is downloaded, return to this menu to continue validation."

After selecting ok it opens the steam app and takes me to "Euro truck Simulator 2" rather than any mods.

When then running in debug I get this output in the options log.

steam -applaunch 221100 -connect=51.195.189.60:2402 -nolauncher -nosplash -skipintro "-mod=@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da;@68b329da"

aclist commented 2 years ago

Thanks for the report, I investigated it. Looks like the BM API is broken again and is returning invalid results, in this case pointing to a published screenshot on the workshop instead of a mod.

I pushed a hotfix for this in order to circumvent the BM method altogether. I have not attempted to download every mod and connect yet, but I can confirm that the erroneous ETS2 screenshot is no longer in the returned results. Please test and confirm.

For now, it is not mandatory to have a Steam API key, but in the near future, I'd like to drop what remains of the BM integration and rely on our internal methods and just query Valve master servers. I will be merging a full server browser from the testing branch into the stable branch soon, and it does not depend on BM to list and query servers anymore.

This is really the last straw with the BM API. Given how unreliable it is, I will likely make it mandatory to use a Steam API key for the modlist part after the next couple of releases. Following this hotfix, we aren't using BM for anything other than keeping track of server ID numbers as a handy reference to carry around. I am OK with keeping the server ID legacy code as a way of looking up servers for those who prefer to use the web (e.g. "Look up by ID," "Add by ID"), but everything should be actually saved and queried on an IP basis under the hood. This would coexist with the new methods ("Connect by IP" and "Server browser"), the latter being unreleased. As for people's favorites, I think I would just migrate them to a list of IPs instead of IDs behind the scenes.

My point is, if you don't have a Steam API key yet, you should probably get one, as it will facilitate the transition in the future and opens up access to the full server browser releasing next week. And it lets you use the existing "Connect by IP" menu option. Instructions for how to do so are in the help file.

SuperDaveAU commented 2 years ago

Is it possible to directly query the DayZ server list somehow without BM or anything else?

aclist commented 2 years ago

Not without anything, as you need to utilize the Steam API.

Enable the testing branch as follows:

  1. Select Toggle debug mode in main menu
  2. Select Debug options at bottom of list
  3. Select Toggle branch => app will download beta branch
  4. Select Toggle debug again to enter normal mode
  5. Select Server browser from the main menu

As noted above, requires a Steam API key: https://steamcommunity.com/dev/apikey

This functionality is 99% or 100% working and being used by people on the testing branch. It will undergo a final QA pass before being released into the stable branch.

aclist commented 2 years ago

Does either of the above fix your issue?

SuperDaveAU commented 2 years ago

No, it doesn’t. I removed the saved server, then found it in the server list by filtering for “archon” and selected the chenarusplus map.

It then said preparing symlinks and then closed and didn’t load DayZ.

Tomorrow I’ll remove dzgui, and all the mods from DayZ, plug the usb network adaptor in and run it in debug and see what logs and info I can get for you.

SuperDaveAU commented 2 years ago

Ok, I’ve removed the mods and started again. move then gone back and followed your instructions and found the server and have subscribed one by one to the mods.

At the end it says preparing symlinks and then just stops.

I assume it is suppose me to then launch DayZ but it does not.

aclist commented 2 years ago

A bug was introduced with version 2.7.0 yesterday that was blocking the game kickoff step. I just fixed it with 2.7.1. The game should now launch after preparing symlinks.

SuperDaveAU commented 2 years ago

I started it up today and it downloaded the new version 2.8.0-rc.1 and it works like a charm! Thanks so much buddy!

aclist commented 2 years ago

Sorry for the inconvenience and thank you! Both the stable branch (2.7.1) and testing branch (2.8.0-rc.1) have this fix, so you shouldn't have this problem on either branch. If you want to avoid rapid changes and updates, I suggest going to the stable branch.

SuperDaveAU commented 2 years ago

Just came back here to tell you that when I loaded it again after a few hours it now fails saying that I don't have the right mods loaded. Even though I launched it using DZGUI. Is there something I'm missing? The server in question is 51.195.189.60 : 2302

Secondly the server browser allows you to use a keyword search. This search does not work in game mode as the keyboard will not allow you to type anything in.

aclist commented 2 years ago
  1. I will investigate the server you listed.
  2. This is a limitation of SteamOS and their text overlay. I already reported the issue to Valve. It's recommended to use Desktop Mode when you need to configure/type things into the app and Game Mode just to launch.
aclist commented 2 years ago

it now fails saying that I don't have the right mods loaded

Is this error coming from DayZ itself?

SuperDaveAU commented 2 years ago

Is this error coming from DayZ itself?

Yes it is. The Archon team run a reboot every 4 hours and often update the mods if they see new ones. Is it possible that the script needs to double check for these mods also?

aclist commented 2 years ago
  1. Were you logged in continuously for 4 hours?
  2. What is the exact error message returned?

It shouldn't be necessary to check again, as the mods get synchronized on the fly whenever you connect. There are rare cases of some servers requiring a certain order in which mods should be loaded, though.

What I am thinking is that the server may have rebooted during a window when we first got the response from it and when you connected. This seems quite rare, though, and it should go away if you reconnect, right? How often does this happen?

I am running a test now, but looks like the server has 56+ mods, so will take some time to complete. I did notice that some other maps on other ports at that same IP periodically go down or update their modlist.

SuperDaveAU commented 2 years ago

Sorry for the late reply, I just loaded it up again and it automatically updated to the latest 2.8.0-rc.25.

I then chose the server from my servers. it then said preparing symlinks and started DayZ.

I then got this error.

6AAE96C1-EC63-4BF3-831D-6FBB69970C41

aclist commented 2 years ago

Here is what I did:

  1. Boot into Steam Deck desktop mode
  2. Had a clean prefix (did not have all mods from this server installed)
  3. Chose to connect to 51.195.189.60:2302
  4. Followed onscreen prompt to download 36 mods
  5. Installed all mods, then connected
  6. Agreed to Battleye installation
  7. Loaded into the server successfully

You should verify that $HOME/deck/.local/share/Steam/steamapps/common/DayZ@1cedcec2/addons contains the file Loadingscreen.pbo.

Also try deleting the @1cedcec2 directory and forcing it to redownload that mod specifically.

Also try connecting via the "Connect by IP" menu option and see if the result is different from the list. (It shouldn't be, but I would like to eliminate any possibilities.)

Also test Steam Deck game mode versus desktop mode and see if the result is different.

aclist commented 2 years ago

OK, I think I might have found a bug related to servers that have multiple maps behind a different port. Try connecting to Archon PVE by plugging in the IP into the "Connect by IP" option and see if it works. When I used that on Steam Deck, it connected. But when I used the server list, it gave me the same mod error.

I am investigating why the server list method is not working for this server.

aclist commented 2 years ago

OK, this is fixed. Unbelievably, BM is returning the wrong query port (like I said at the start of the thread, I guess we can't rely on their info) for servers that have multiple ports/maps. So it was getting the right IP but pointing to the query port for one of the other maps on the same server, therefore getting the wrong modlist. I think this was a rare case because some of BM's data is just randomly incorrect.

The connect-by-IP method uses a different logic to query Valve directly and was getting the right data. So I just changed these to both point to the same source. I am testing it now and will push an update later. This breaks backwards compatibility because we need to enforce all users to register Steam API keys now. I am setting up a warning message on startup that will warn and instruct the user to set up a key if they haven't already.

For now, I would suggest using connect-by-IP for this server until the update is released.

aclist commented 2 years ago

The fix is live on 2.8.0-rc.6.