I supposed thatâs what @radar3301 meant (the âcampaign selectâ thingy), but I could be wrong ^^
This.
I was asking if there was a way to avoid this.
I would love to see that re energised if you get round to it 
Install a Maya3 is not that hard⌠well, if people wonât blame me for putting a download link of a cracked version hereâŚ
I probably will, since we could definitely use it in our mod. 
We can use an alternative dlc, so the stock campaigns are preserved, but it comes to the same thing - to change campaign you would have to relaunch the game, just like switching between HW1RM campaign and HW2RM campaign requires relaunching.
yes, exacly this Iâm afraid :â(
It looks like the campaign button is a hard-coded Lua to C(++) function [âCampainButton()â].
the CampaignButton() function is not hardcoded itself, you can find it in exbutons.lua. It calls another function, NoButton(_name), where _name is âbtnCampaignâ. The thing is that it doesnât link to anything after that, so I think the code running behind it is hardcoded.
From experience, as soon as a screen as a defined type in uisettings.lua (type=âSPMissionSelectâ in our case), you can be sure that there is harcoded things running into it (or hardcoded linked informations between screen, like for the badge screen which I couldnât reuse in my rainbow mod)
Actually, I beg to differ. (Edit: I think you might have edited your post before I got finished with mine, or I didnât read through yours all the way.) The way the Lua bindings work, you can bind a C function to a Lua global âname,â so that Lua can call a C function.
Iâd imagine that the â-campaignâ flag in the command line basically creates that CampaignButton function in the C side of the program. (I just confirmed that the HW2 Ascension campaign is only accessible via (Update)HW2Campaign.big, and that the only way to load that big file is through the â-campaign ascensionâ flag.)
Since in normal operation, that function is never bound on the C side of the program into the Lua global namespace, that call in âexbuttons.luaâ returns a nil value (as expected), which then binds a function called âCampainButtonâ into the Lua global namespace from the Lua side.
This is mostly just speculation, but I feel pretty confident in my assumptions. Iâm sure @BitVenom (or another dev) could confirm.
Edit: Iâm doing quite a bit of C-Lua binding research in my work of creating an updated FXTool; hence my confidence.
donât know, youâre perhaps right, Iâm not a C expert at all ^^
But Iâm not so sure because there is clearly a dofilepath(âdata:ui/newui/Main/ExButtons.luaâ) in the beggining of the file containing the call to CampaignButton(), so the code should look there beforehand. Wherever the hardcoding is, itâs a bad news for us anyway ^^
Yeah, I went all the way up the dofilepath chain and into all referenced files, even did a file content search for âCampainButtonâ and, other than in the exbuttons.lua file, CampainButton is never defined anywhere else.
Although in the campaignâs override of exbuttons.lua, there is this:
function CampainButton()
return NewMenuButton("btnCampaign", "$2603", nil, 0, LAYOUT_MENU_BUTTONS, "FEButtonStyle1", nil)
end
I can guarantee you âNewMenuButtonâ is a hard-coded function just like âaddWeaponConfigâ is, so I wonder if some of the magic is taking place in the C-side of that âNewMenuButtonâ functionâŚ?
Edit:
NewMenuButton is also defined in ui\newui\styles\hwrm_style\controlconstructors.lua, but even then, the âonMouseClickâ function for the CampaignButton is assigned a ânilâ value, which tells me thereâs some hardcoding funkery going on.
In which file did you find this version of the CampaignButton() ?
There is too many versions of the same files at the moment ! Between all the big file (Iâve looked in dataUpdate), itâs a mess ! :â(
HW2Campaign.big\ui\newui\main\exbuttons.lua
I really need to re-extract all the files in the correct order. I had only done the âcoreâ files before, not the campaign ones, didnât think there would be UI related stuff in there
I have them all extracted into separate locations⌠
⌠or rather, I extracted lists of the files in each, then extract specific files as needed. 
I know what was my problem⌠the DataMP.big file in the dataUpdate folder
function CampainButton()
return NoButton("btnCampaign")
end is actually the default behavior in âexbuttons.luaâ
Yep, thatâs what I had before my ârevelationâ ^^