Goobwabber/MultiplayerExtensions

The mod do not recognize the beatmaps as beeing the same for every players[BUG]

Decards opened this issue · 2 comments

Multiplayer Extensions Version and Download Source
v1.1.26 from Mod Assistant

Windows 11 and 11 and 10
We all have oculus quest 2

We all pull our maps from a common repository on gitlab so we are certain we always have the same custom maps and they are the same versions but when in a private lobby of 3 players when we try to start the game the mod do not recognize our maps as the same if we try to download in game it doesn't work but i heard it's normal for now. A few maps are recognize but not the majority.

To Reproduce
Create the lobby with a lot of maps to test and some won't match with the other players one's.

Expected behavior
we should be able to start the game normaly as we all have the maps and they are the same

Log
_latest.log

Attached

i think those are related:

[INFO @ 20:29:39 | MultiplayerExtensions] Entitlement from '6URVthEQnLlwa68+brKVEc' for 'custom_level_BF4A9C0B0139903F21AA20C24C990AC9A7C0EC31' is NotOwned

[INFO @ 20:29:49 | MultiplayerExtensions] Entitlement from '6URVthEQnLlwa68+brKVEc' for 'custom_level_BF4A9C0B0139903F21AA20C24C990AC9A7C0EC31' is NotOwned

Hi, I had the same issue as you last night, and I think I've managed to find out why it's happening.

The map in question does not exist on Beat Saver. You can verify this by using the supplied level hash and going to the Beat Saver download URL, which is, with the provided hash: https://eu.cdn.beatsaver.com/bf4a9c0b0139903f21aa20c24c990ac9a7c0ec31.zip

Opening the URL above 404's, and I believe this is why the game is behaving the way that it is doing.

This case blurs the line between bug and enhancement because, for all intents and purposes, the mod is doing the job it's supposed to (not allowing you to play maps it knows it cannot locate on the remote server) however, I do agree that checking to see if all players have the same level hash would be a better user experience, especially for those of us using central repositories to sync custom levels between friends (I have a similar setup to yourself using GitHub). Thus, I would personally class this as an enhancement rather than a bug however, this might be down to interpretation.

The hashes for the levels are based on the contents of the .dat files within the level folder. If these change, the hash will change. This was the case for me with a map I downloaded a long time ago (Maroon 5 - Animals, by baxter395). Since I downloaded it, the author has published new difficulties and as a result, the hash of my older, downloaded copy, no longer matches that of the remote copy.

In order to find the problematic levels, I've created a quick Python script that will go through all of your custom levels and highlight those that do not exist on Beat Saver, and give you the option to export their names and hashes afterwards. It's here if you're interested.

Whether you use the tool above or not, it seems that if you download the latest version of your problematic maps, the issue will go away.

I hope this helps!

Update: plot thickens.

The script I created before is capable of generating the correct hashes that the game expects (verified by cross checking in-game logs) however, these don't always line up with those from Beat Saver. For example, the script generates the following hash for Imagine Dragons - Birds, by Joetastic: 681d00b8078ffc7b82770e17f7d9a0675a216aca, but the hash on Beat Saver is: 32d0154aba237ae0e723e394510b213e13b6e2f5.

It seems that your map may well exist, and may not have been updated by the author, but the hash being used to query it does not line up with that on the server.