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

Addon Version Check Database Bug in Multiplayer Lobby #4055

Closed
JessePotterMusic opened this issue Apr 29, 2019 · 19 comments
Closed

Addon Version Check Database Bug in Multiplayer Lobby #4055

JessePotterMusic opened this issue Apr 29, 2019 · 19 comments
Labels
Add-ons Issues with the add-ons client and/or server. Bug Issues involving unexpected behavior. Good first issue Issues deemed adequate for contributors without prior experience to work on. MP Lobby Issues with the multiplayer lobby UI and its components.

Comments

@JessePotterMusic
Copy link

Hey there, just reporting this bug as I was asked by the developers. I couldn't join the game at the bottom of the list "segfaulted's game." Then this error came up.

wesnoth_multiplayer_bg

I am running version 1.14.5
Hope this helps, thanks!

@Wedge009 Wedge009 added Bug Issues involving unexpected behavior. MP Lobby Issues with the multiplayer lobby UI and its components. labels Apr 29, 2019
@soliton-
Copy link
Member

Likely reason is that the variables mp::game_info::required_addons and mp::game_info::addons_outcome are not in sync, meaning addons_outcome was set to something != SATISFIED without adding to required_addons. Like for example here:

addons_outcome = NEED_DOWNLOAD;

Ideally there should not be two variables that need to be in sync. All the info should be in one place.

@soliton- soliton- added the Good first issue Issues deemed adequate for contributors without prior experience to work on. label Jun 25, 2019
@stevecotton
Copy link
Contributor

I've seen this a couple of times recently, after building from source. I've just tried pressing "Create Game", and found that the only eras that are installed are the default four, although I definitely have Ageless installed in my add-ons folder. Purging the cache did not fix it, nor did exiting and restarting.

I then tried creating a local multiplayer game instead of connecting to the server. That gave the expected long list of eras, in the Create Game screen, After that, I joined the multiplayer server and my installed eras showed up.

So I've a suspicion that the database used when connected to the server is only being created when creating a local game.

@Wedge009 Wedge009 added the Add-ons Issues with the add-ons client and/or server. label Oct 22, 2019
@Pentarctagon
Copy link
Member

Pentarctagon commented Apr 26, 2020

Reported on Discord by the user Poison#2201, they also encountered this issue trying to observe a game using Default Era, Isar's Cross, and the mods:

  • color_mod
  • plan_unit_advance
  • Rav_Color_Mod

They themselves had quite a few add-ons installed, in part since they observe a lot of games:
addonsfolder1
addonsfolder2

For future reference, the game in question can be found in the database with AN INSTANCE_UUID of 8c91fa9b-7c8f-11ea-9d3a-0ee77816ca01 and a GAME_ID of 82810.

I did try observing that game as well, and was able to join without any issue. However, the only add-ons I had installed were the three mods listed above.

@vgaming
Copy link
Member

vgaming commented Mar 7, 2021

Is it with filesystem manipulation (e.g. removing add-ons), or without? I easily get it if I mangle with addons, but the issue always goes away if I clear the cache in Preferences and then press F5 in the main screen

@Infor-Master
Copy link

can confirm this still happening. First time i found this message while on Wesnoth 1.16.5. As some mentioned before, clearing cache didnt help

@soliton-
Copy link
Member

For the record there is no database involved here. Just code checking the game info and getting confused.

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 7, 2023

Is it with filesystem manipulation (e.g. removing add-ons), or without? I easily get it if I mangle with addons, but the issue always goes away if I clear the cache in Preferences and then press F5 in the main screen

It'd be still nice to have a reliable way to reproduce it, even with filesystem manipulation.

@Pentarctagon
Copy link
Member

If nothing else, an error message that's actually accurate would be nice.

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 7, 2023

Even if it would be that simple, we are already in string freeze currently

@Pentarctagon
Copy link
Member

Writing a more sensible error message to the logs for now would still be an improvement.

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 9, 2023

So this randomyl happend to me on the 1.16 multiplayer server, so i took a look at what the client actually receives:

	[game]
		active_mods = plan_unit_advance,WoL_mod_enable_armageddon,WoL_mod_enable_dwarven_runesmith,WoL_mod_enable_dwarven_arcanister,WoL_mod_enable_Nightblade,WoL_mod_enable_dune_paragon,WoL_mod_enable_troll_shaman,WoL_mod_enable_death_knight,WoL_mod_enable_ancient_lich,Rav_XP_Mod,WoL_mod_enable_elvish_lord
		difficulty_define = EASY
		experience_modifier = 70
		hash = jAl+.AytX<rfcZ4C2xhuX09KCwNtyfWJVtiUvaJ8bBKCfkT-c<VOzk.1>kbVlmn+fBmKHcbzRWr+tR<A0MXP5lun><qrnwvJFgAGZsy1oqP0nqn0KGxN9v,jpluxvDAa
		id = 2773
		ignored = 
		map_data = Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ww, Ww, Ww, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ww, Dd^Vd, Ww, Ww, Ww, Ww, Ds, Gg^Vh, Hh, Gg, Gg, Rr^Vhc, Ch, Ch, Ch, Ch, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ds, Ds, Ss, Ss, Ds^Esd, Ds, Ss, Hh, Gg, Hh, Hh, Gs, Gs^Fms, Ch, 5 Kh, Ch, Ch, Ds, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Wo, Ss, Ss, Cd, Gs, Hh, Ss, Ss, Gs, Gs, Hh, Hh, Gs, Hh, Ch, Ch, Re, Ch, Ch, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ss, Gg, Gs, Gg^Vd, Gg^Fet, Gs, Gs, Gs, Gs, Hh, Gs, Hh, Hh^Fp, Mm, Hh, Gs^Fp, Gg, Re, Hh, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ds, Gs, Gg^Fet, Gs^Fms, Hh^Tf, Hh^Fms, Hh, Gs, Hh, Gg^Vd, Gs^Fp, Gs, Xu, Uh, Uu, Urb, Uu, Ms, Gg, Re, Gg, Gg, Ds, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Gg, Gs^Fds, Mm, Gg^Tf, Gs, Hh^Fp, Gs, Gs^Fp, Mm, Hh^Fp, Xu, Uu, Uu, Uu, Uh, Uh^Tf, Uu, Ha, Gg, Aa, Re, Gg, Gs^Fp, Hh, Ds, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ss, Gg^Vht, Gs^Fp, Xu, Uu, Cud, Mm^Xm, Mm^Xm, Hh^Fp, Mm, Mm^Xm, Uu, Uh, Urb, Uu, Uh^Tf, Uu^Tf, Xu, Aa, Ha, Aa^Fda, Re, Gg, Hh^Fp, Hh^Fp, Gs, Ds, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Wo, Ds, Ss, Gs, Gg, Gs^Fms, Mm^Xm, Uh, Cud, Mm, Gs, Gs^Fms, Xu, Uu, Uh, Xu, Uu, Uu, Uu, Uu, Hh, Gg, Gg, Re, Re, Hh^Fp, Xu, Uu, Xu, Gs^Fms, Dd^Vo, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ds, Ds, Ss, Gs, Hh, Hh, Hh^Fds, Mm, Mm^Xm, Mm^Xm, Gs^Fp, Hh^Fds, Gs^Tf, Uh, Uh, Uh, Ql, Uh, Uu, Uh, Xu, Hh^Fms, Hh^Fms, Re, Gg^Vo, Gs^Fms, Hh, Uu, Uh, Urb, Mm, Gg, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ds, Gs, Hh, Gg, Hh, Gs^Fds, Hh, Gs^Fp, Mm^Xm, Gs, Hh^Fds, Gs, Gg^Tf, Urb, Xu, Xu, Gs, Xu, Uu, Xu, Gs, Gs^Fds, Gs^Fms, Re, Gs, Gs, Gg, Mm^Xm, Uh^Tf, Uh^Tf, Uu, Gg, Gg^Fet, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Ds, Ds, Ds, Hh, Hh, Gg, Gs, Hh, Hh, Gg, Mm, Uu, Gs^Fms, Hh^Fms, Hh^Fds, Hh^Fds, Hh^Fds, Hh^Fds, Gs, Hh, Hh^Tf, Mm, Mm, Hh, Gg, Hh, Re, Hh, Gs, Hh, Co, Uh, Uh, Uu, Mm, Gs^Fds, Ds, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ww, Ds, Gs^Fp, Gs, Gg^Vh, Hh, Hh, Gs^Fds, Ss, Gs, Gs^Fp, Mm, Xu, Xu, Hh^Fms, Hh^Fms, Gs^Fds, Gs, Gg^Fet, Hh, Gg, Gg, Gg, Gs^Fp, Hh, Gg, Re, Re, Gs, Hh, Gs^Fds, Hh, Uu^Tf, Urb, Uu, Mm, Hh, Gg, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ww, Dd^Vda, Ss, Gs^Fds, Gg, Gs, Gg^Fet, Gg^Fet, Gs, Hh, Gs, Gs^Fp, Hh, Gs, Hh, Gs^Fp, Ss, Gg, Gs^Fms, Gs^Fp, Gs, Gg, Re, Gs, Gs^Fms, Hh, Re, Gs^Fms, Gg, Gg^Fet, Ss, Hh^Fds, Xu, Xu, Gs, Hh^Fds, Gs^Fds, Gs^Fds, Ss, Ww, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ww, Ds, Ss, Gs^Fds, Gs^Fms, Gg, Gs, Gg, Re, Gs^Fms, Gg, Gs, Gs, Gg^Ve, Gg, Gs, Gs^Fds, Gs^Fp, Re, Re, Re, Re, Gg^Ve, Re, Re, Re, Gg, Hh, Gs, Gs^Fp, Gs^Fp, Gs^Fp, Mm, Hh^Fms, Gg^Vo, Gs^Fp, Gs, Gs, Ss, Ds, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ds, Ch, Ch, Ch, Hh, Gg, Re, Re, Gs, Re, Re, Gs^Fp, Gs, Gg, Gs, Hh, Re, Re, Gg, Gs^Fp, Hh, Hh, Hh, Hh, Re, Gg, Hh, Gs, Gg, Gs^Fms, Gs, Gs, Hh^Fp, Gs, Gg, Gg, Gs, Gs, Ss, Ds, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ds, Ch, 1 Kh, Ch, Re, Re, Gs, Gs, Mm, Gs, Mm, Re, Hh, Gg, Gs^Fds, Gs, Re, Cv^Fds, Gs, Mm^Xm, Mm^Xm, Hh^Fms, Hh^Tf, Hh, Gg^Fet, Re, Re, Hh, Hh, Hh, Mm, Gs, Hh^Fms, Gg, Gs^Fds, Gs, Gs, Gs, Ss, Ds, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ds, Gs, Gg, Re, Mm, Gs, Uu, Xu, Urb, Hh, Gg, Re, Re, Re, Re, Re, Gs^Fp, Mm, Hh, Xu, Hh, Gg, Gs^Fms, Hh, Gs^Fp, Gs^Fms, Re, Hh, Hh, Hh, Hh^Fms, Hh^Fp, Hh^Tf, Gs, Gs, Gs, Gs, Ss, Ss, Ds, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ss, Gs, Hh, Mm^Xm, Uu^Dr, Mm^Xm, Xu, Urb, Uu, Mm^Xm, Gg, Gs, Re, Gg^Fet, Re, Hh, Xu, Uu^Tf, Uh, Mm, Gs, Gs^Fms, Gs, Hh^Fms, Gs^Fms, Hh^Fms, Hh^Fms, Re, Hh^Vh, Gg, Re, Gs, Re, Rr^Vhc, Gg, Ch, Ch, Ss, Ds^Esd, Ww, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Ww, Ss, Gg^Fet, Hh^Fds, Xu, Uh, Uu, Uh, Uu^Tf, Xu, Mm^Xm, Gg, Gg, Gs^Fds, Re, Gs^Fds, Gs, Xu, Uh, Urb, Uh, Uh, Uu, Xu, Xu, Gs, Mm^Xm, Hh, Re, Re, Re, Gg, Re, Gs^Fms, Ch, Ch, Ch, Ch, Ch, Ds, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Ww, Ss^Vhs, Gg, Gg, Mm, Xu, Uu^Vud, Xu, Mm, Gs, Gg, Gs, Gs, Gs^Fds, Re, Re^Vhh, Hh^Fds, Mm, Xu, Uu, Uh^Vud, Uh^Tf, Uu, Uu, Uu, Uu, Mm^Xm, Hh, Mm, Gg, Gg, Gg, Gs, Gs, Ch, Ch, 4 Kh, Ch, Ch, Ds, Ds, Ww, Wo, Wo, Wo
Wo, Wo, Wo, Ww, Ds, Gs, Gg, Gg^Fet, Mm^Xm, Uh, Uu, Hh, Hh^Fds, Hh, Gs^Fms, Gs, Gg, Re, Re, Gs, Gg, Gs, Xu, Uu, Uh^Tf, Uu, Uu, Uu, Xu, Gs^Fms, Hh, Gs^Fms, Gs, Gg, Hh, Gs, Xu, Xu, Hh^Fms, Gs, Gg, Gs^Fds, Ss, Ds, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Ww, Ds, Gg, Gs, Gg, Gs, Uu, Urb, Xu, Hh, Gs^Fms, Gs, Gg, Ss, Gg, Gg, Re, Gg, Hh, Mm, Xu, Uu, Uh, Uu, Uh, Uu, Mm, Gs^Fp, Hh, Gs^Fp, Hh, Gs^Fp, Xu, Uh, Uh, Uh, Gs, Gg^Fet, Gs, Gg, Ds, Wwr, Wo, Wo, Wo
Wo, Wo, Wo, Ww, Ds, Gg, Gg, Gg, Mm, Xu, Uu^Tf, Uu, Uu, Xu, Hh, Gg, Gs, Gs^Fms, Gs^Fms, Re, Gs, Gs^Fds, Hh^Fds, Hh^Fp, Xu, Mm^Xm, Xu, Uh, Uu, Xu, Gs, Gs, Gg, Gg, Mm^Xm, Uh, Uu, Uu, Uh, Uu, Gs^Fms, Hh, Ss, Ds, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ds, Gg, Gs, Gs, Mm, Gs, Xu, Uu^Tf, Uh^Tf, Uh, Mm, Gs^Fms, Gs^Fp, Gg, Gg, Re, Gg, Gg, Gs, Gs, Hh, Hh, Hh, Xu, Uu^Tf, Xu, Hh^Fds, Gg, Gg^Fet, Gs, Mm, Xu, Uu, Uh, Uu, Uu, Hh^Fds, Gs, Ss, Ds, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ww, Gg, Gs, Hh, Hh, Hh, Uu^Tf, Uu, Uh^Vud, Uh, Xu, Gs^Fp, Gg, Gg, Re^Vhh, Re, Gs^Fp, Gs, Gs^Fp, Gg, Gs^Fds, Gs, Gs^Fds, Hh, Uu, Uu, Hh^Fp, Gg^Fet, Hh, Gs^Fp, Hh, Gs, Xu, Xu, Mm, Hh^Fds, Gs, Gs^Fds, Ds, Ww, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Ww, Gg^Vc, Gs^Fp, Gs, Gs^Fp, Mm, Urb, Uu, Uu, Xu, Mm^Xm, Hh, Gg, Gg, Gg, Re, Hh, Gg, Gg^Ve, Gs^Fp, Hh^Tf, Hh, Cv^Fds, Xu, Uu, Xu, Hh^Dr, Gg, Gg^Vh, Gg, Gg, Hh, Gs^Fp, Mm, Gs, Gg, Gs, Hh, Ds, Ds^Esd, Ww, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Gg, Gg, Gg, Gs^Fms, Hh^Fms, Uu, Mm^Xm, Gg^Tf, Gs^Fp, Hh, Gs^Fp, Gg, Gg, Aa, Re, Gg, Hh, Gg, Hh, Gg, Gs^Fms, Mm, Urb, Uu, Ql, Gs, Gs^Fp, Gg, Gs^Fp, Gg, Gg, Hh^Tf, Gg^Vh, Gs^Fds, Gg, Gs, Gs^Fp, Ss, Ds, Ww, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Gg, Gg, Hh, Gs, Hh^Fp, Ce, Hh^Fp, Gs, Gs^Fms, Hh, Hh, Gg, Gg, Re, Gg, Gg, Gg, Gg, Gg, Hh, Hh^Fp, Mm, Uu^Tf, Md^Xm, Mv, Md, Gg, Gg, Gg, Gg, Gs, Gg, Gs, Gs, Gs, Hh, Ss, Ds, Ww, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Ww, Hh, Hh, Gs, Gs, Gs, Hh^Fds, Hh, Mm, Gs^Fp, Gg, Gg, Gg, Re, Gg, Gg, Gg, Gs^Fp, Hh, Gg, Gs, Mm, Hh^Dr, Md^Xm, Md^Xm, Hh^Fp, Hh^Fms, Gg, Gg, Hh, Hh, Gg, Gs^Fds, Gs, Hh, Gs^Fp, Hh, Dd^Vda, Ww, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ds, Gg, Gg, Gs^Fp, Hh, Gs^Fds, Gs^Fp, Xu, Mm, Gs, Gg, Gs^Fms, Re, Gs^Fms, Gs^Fms, Gs^Fms, Gg, Gs^Fp, Hh, Hh^Fds, Xu, Xu, Uu, Cud, Md^Xm, Hh^Fds, Hh, Gg, Hh, Gg^Fet, Gg^Fet, Gs^Fds, Gs, Hh, Gs^Fms, Ds, Ww, Ww, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ds, Ds, Hh, Gs, Gg^Fet, Hh^Fds, Gs^Fms, Cud, Uu, Hh^Fds, Hh, Hh, Re, Re, Gg, Gs^Fp, Hh, Gg^Fet, Hh, Hh^Fds, Mm, Uu, Uu, Uh, Mm, Gs^Fp, Hh, Gs, Ch, Ch, Ch, Gs^Fds, Gs, Gs, Ds, Ww, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ds, Ds, Gs^Fp, Hh^Fms, Hh, Hh, Mm, Mm^Xm, Mm, Hh^Fms, Hh, Gg^Vh, Hh, Re, Re, Re, Re, Gs^Fds, Gg, Mm, Mm^Xm, Xu, Xu, Hh, Gg, Gg, Gs^Fms, Ch, 2 Kh, Ch, Rr^Vhc, Ds, Ds, Ds, Ww, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ww, Ds^Esd, Gg, Gg, Gs, Mm, Mm^Xm, Uu, Mm^Xm, Hh^Fms, Gs, Hh, Ch, Ch, Ch, Hh, Gg^Vh, Re, Re, Gs^Fms, Re, Hh, Re, Gg^Vh, Re, Hh, Re, Re, Gs, Gg, Ss, Ww, Ww, Ww, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Gg, Gg^Vc, Gs, Hh^Fds, Gs, Uu, Hh^Fp, Mm, Gs, Hh^Fp, Ch, 3 Kh, Ch, Hh^Fms, Hh, Hh, Gg, Re, Gs^Fds, Re, Hh^Tf, Re, Gg, Re, Hh, Gg, Gg, Ds, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ds, Gg, Gg, Gg, Hh, Hh^Tf, Hh^Fms, Hh, Gs, Hh^Fms, Gs^Fds, Gg, Gs, Gs^Fp, Gs^Fms, Hh, Gs, Gs, Gs, Hh^Fms, Mm, Hh^Fms, Hh, Hh, Gs, Ss, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ds, Gg, Gg, Hh, Gg, Gs^Fms, Gs, Hh^Fp, Mm, Hh^Fds, Gg, Hh, Gg, Gg, Hh, Gg, Gg, Gs, Hh^Fds, Gs, Hh^Fds, Hh^Fds, Gs^Fds, Gs^Fds, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ds, Ss, Gg, Gs^Fms, Hh, Hh^Fds, Gs^Fp, Hh^Fds, Gs, Gs, Gs, Gs^Fds, Hh, Gg, Gg, Gs^Fds, Gs, Hh, Hh, Hh, Gs, Ds, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ss, Hh, Gs^Fms, Gs^Fms, Gg, Gs, Gs, Gs^Fds, Gs, Hh, Gs^Fds, Gs, Gs^Fds, Gs^Fds, Gg, Gg^Vd, Hh, Gs, Gs, Gg, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww^Vm, Ww, Ds, Gs, Gs^Fms, Gg^Vh, Gs^Fds, Hh, Gs, Gs, Ss, Gs, Hh, Gs^Fms, Gs, Gs^Fp, Hh, Gs, Gs, Cd, Ss, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ds, Ds, Gs, Ss, Ds, Ds^Esd, Dd^Vda, Ds^Esd, Ds, Ss, Ss, Ss, Ss, Gs, Ss, Ds^Esd, Ds, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Ww, Ww, Ww, Ww, Wo, Ww, Ww, Ww, Ww, Ds, Ww, Ds, Ds, Ds, Ww, Ww, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo
Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo, Wo

		mp_campaign = WC_II_3p
		mp_campaign_name = World Conquest 3p
		mp_countdown = no
		mp_countdown_action_bonus = 13
		mp_countdown_init_time = 270
		mp_countdown_reservoir_time = 330
		mp_countdown_turn_bonus = 60
		mp_era = world_conquest_era
		mp_era_name = World Conquest
		mp_fog = yes
		mp_num_turns = -1
		mp_random_start_time = no
		mp_scenario = WC_II_3p
		mp_scenario_name = World Conquest 3p - Scenario 2 - Provinces
		mp_shroud = no
		mp_use_map_settings = yes
		mp_village_gold = 2
		mp_village_support = 1
		name = Tuypolo’s game
		observer = yes
		password = 
		private_replay = no
		random_faction_mode = No Ally Mirror
		require_era = no
		require_scenario = yes
		savegame = midgame
		scenario = Tuypolo’s game
		shuffle_sides = no
		side_users = wc2_leader1:spulgares,wc2_leader2:Thorvald,wc2_leader3:Tuypolo
		[options]
			[modification]
				id = plan_unit_advance
				[option]
					id = pickadvance_force_choice
					value = no
				[/option]
			[/modification]
			[modification]
				id = Rav_XP_Mod
				[option]
					id = Rav_XP_amla_only
					value = yes
				[/option]
				[option]
					id = Rav_XP_damage_cost
					value = 16
				[/option]
				[option]
					id = Rav_XP_damage_enabled
					value = true
				[/option]
				[option]
					id = Rav_XP_drainer_penalty
					value = 50
				[/option]
				[option]
					id = Rav_XP_hp_cost
					value = 8
				[/option]
				[option]
					id = Rav_XP_hp_enabled
					value = true
				[/option]
				[option]
					id = Rav_XP_move_cost
					value = 10
				[/option]
				[option]
					id = Rav_XP_move_enabled
					value = true
				[/option]
				[option]
					id = Rav_XP_strike_cost
					value = 56
				[/option]
				[option]
					id = Rav_XP_strike_enabled
					value = true
				[/option]
			[/modification]
		[/options]
		[addon]
			id = WoL_mods
			min_version = 1.0.2
			name = War of Legends Modification Enabler
			require = no
			version = 1.0.2
			[content]
				id = WoL_mod_enable_armageddon
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_dwarven_runesmith
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_dwarven_arcanister
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_Nightblade
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_dune_paragon
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_troll_shaman
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_death_knight
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_ancient_lich
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_elvish_lord
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_armageddon
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_dwarven_runesmith
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_dwarven_arcanister
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_Nightblade
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_dune_paragon
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_troll_shaman
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_death_knight
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_ancient_lich
				name = War of Legends Modification Enabler
				type = modification
			[/content]
			[content]
				id = WoL_mod_enable_elvish_lord
				name = War of Legends Modification Enabler
				type = modification
			[/content]
		[/addon]
		[addon]
			id = XP_Modification
			name = XP Modification
			require = no
			version = 2.4.0
			[content]
				id = Rav_XP_Mod
				name = XP Modification
				type = modification
			[/content]
		[/addon]
		[addon]
			id = mainline
			name = mainline
			require = no
			version = 1.16.10
			[content]
				id = WC_II_3p
				name = World Conquest 3p
				type = scenario
			[/content]
			[content]
				id = plan_unit_advance
				name = Plan Unit Advance
				type = modification
			[/content]
			[content]
				id = world_conquest_era
				name = World Conquest
				type = era
			[/content]
			[content]
				id = WC_II_3p
				name = World Conquest 3p
				type = campaign
			[/content]
			[content]
				id = wc2_era_res
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_mainline_heroes
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_scenario_res
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_trainer_data
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_artifact_data
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_trait_data
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_scenario_res_extra
				name = 
				type = resource
			[/content]
			[content]
				id = WC_II_3p
				name = World Conquest 3p
				type = scenario
			[/content]
			[content]
				id = plan_unit_advance
				name = Plan Unit Advance
				type = modification
			[/content]
			[content]
				id = world_conquest_era
				name = World Conquest
				type = era
			[/content]
			[content]
				id = WC_II_3p
				name = World Conquest 3p
				type = campaign
			[/content]
			[content]
				id = wc2_era_res
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_mainline_heroes
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_scenario_res
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_trainer_data
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_artifact_data
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_trait_data
				name = 
				type = resource
			[/content]
			[content]
				id = wc2_scenario_res_extra
				name = 
				type = resource
			[/content]
		[/addon]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_elvish_lord
			name = Enable Elvish Lord
			require_modification = yes
		[/modification]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_ancient_lich
			name = Enable Ancient Lich
			require_modification = yes
		[/modification]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_death_knight
			name = Enable Death Knight
			require_modification = yes
		[/modification]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_troll_shaman
			name = Enable Troll Shaman
			require_modification = yes
		[/modification]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_dune_paragon
			name = Enable Dune Paragon
			require_modification = yes
		[/modification]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_Nightblade
			name = Enable Nightblade
			require_modification = yes
		[/modification]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_dwarven_arcanister
			name = Enable Dwarvish Arcanister
			require_modification = yes
		[/modification]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_dwarven_runesmith
			name = Enable Dwarvish Runesmith
			require_modification = yes
		[/modification]
		[modification]
			addon_id = WoL_mods
			id = WoL_mod_enable_armageddon
			name = Enable Armageddon Drake
			require_modification = yes
		[/modification]
		[modification]
			addon_id = 
			id = plan_unit_advance
			name = Plan Unit Advance
		[/modification]
		[slot_data]
			max = 3
			vacant = 0
		[/slot_data]
		[turn_data]
			current = 4
			max = 28
		[/turn_data]
	[/game]

As you can see, in the [addon] section of the game the addon WoL_mods is marked as require = no , but below there are [modification]s from it (like WoL_mod_enable_armageddon) and there they are marked as require_modification = yes

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 9, 2023

After downloading said addon, i noticed that the modifications inside indeed have require_modification=yes in them, so the error seems to be that in the [addon] section of the game the addon WoL_mods is marked as require = no for some reason

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 9, 2023

The problem is that here we write require

cfg["require"] = required;

But what we actually read is required
, required(cfg["required"].to_bool(false))

@Pentarctagon
Copy link
Member

@gfgtdf does this fix need to be forwardported?

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 18, 2023

No 1.17 already has another fix

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 18, 2023

(the fix for 1.16 is different for compatibility reasons)

@Pentarctagon
Copy link
Member

So this can be closed?

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 18, 2023

I'd say so, yes

@gfgtdf
Copy link
Contributor

gfgtdf commented Dec 20, 2023

Actually while this fixes probably the most common cause, it can still happen in case of bad umc code, for example when one player modifies their addon to add a tag to it that the other players doesn't have.

I do think that we should still at least give a better error message in those cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Add-ons Issues with the add-ons client and/or server. Bug Issues involving unexpected behavior. Good first issue Issues deemed adequate for contributors without prior experience to work on. MP Lobby Issues with the multiplayer lobby UI and its components.
Projects
None yet
Development

No branches or pull requests

8 participants