Jump to content

Help Locating NG+ ChargenMenu Trigger


Recommended Posts

Hey guys, hoping someone can help me out with finding this, as I've been trying for two days with no success. I'm just trying to locate the script that opens the CharGenMenu at the start of a NG+. I've search all over MQ101, MQ305, MQ401. I was having trouble so I just recompiled all the scripts I could find with "CharGen" with the open menu line blocked, but still not working. None of the new update esms have scripts in them, and I'm really scratching my head over this.

Link to comment
Share on other sites

Try these:

Game.ShowRaceMenu(None, 1)

Game.ShowRaceMenu()

Debug.ExecuteConsole("14.SLM 1")

Debug.ExecuteConsole("ShowMenu ChargenMenu")

Debug.ExecuteConsole("Prid 14") then Debug.ExecuteConsole("SLM 1")

Link to comment
Share on other sites

Thanks, I eventually found it, it's a combination of MQ401 and MQ101 commands, I've pretty much got it all figured out, but after the changes I'm having an issue with the player having limited controls. I can jump and look around but thats about it, even the esc button is disabled. I think its either a SetInCharGen or disable player control command. I honestly haven't messed with it yet, just updating that I had found it 😄

Link to comment
Share on other sites

8 hours ago, senterpat said:

Thanks, I eventually found it, it's a combination of MQ401 and MQ101 commands, I've pretty much got it all figured out, but after the changes I'm having an issue with the player having limited controls.

If you mean Quest Stages of MQ401 and MQ101, they are possibly calling InputEnableLayer.DisablePlayerControls() as well.

Link to comment
Share on other sites

8 hours ago, LarannKiar said:

If you mean Quest Stages of MQ401 and MQ101, they are possibly calling InputEnableLayer.DisablePlayerControls() as well.

Yes they are, but I'm having trouble removing the input layer, or something else entirely. Even using ForceEnablePlayerControls() with theconsole, as well as ToggleControlsOverlay, I still have the same issue of being able to jump and look around only, although FEPC allowed me to punch as well. Before and after using other commands I used GetPlayerControlsDisabled, which returned everything except fighting as 1.

Also, using Coc to a random cell, the players controls are enabled on loading, even without any of the other commands entered beforehand. Do overlays have to be deleted? I added commands to trigger MQ101 and MQ401s function "MQ***EnablePlayerControls", but that doesn't seem to be working either. 

I'll keep messing with it, I don't want to have to resort to moving the player to another cell and back to start it.

 

I also tried SetInChargen as a last resort, but that doesn't seem to have anything to do with movement regardless.

Link to comment
Share on other sites

ToggleControlsOverlay does exactly this in the native code 🙂 

bool ToggleControlsOverlay() {
	return 1;
}

Console Overlays are not available in the release builds, BGS developers can access them.

 

I think you can disable the input layer with the functions attached the quest scripts with [ CF "ScriptName.FunctionName" ].

Function MQ401DisablePlayerControls()
    MQ401EnableLayer = InputEnableLayer.Create()
    MQ401EnableLayer.DisablePlayerControls()
EndFunction

Function MQ401EnablePlayerControls()
    MQ401EnableLayer = None
EndFunction

 

Link to comment
Share on other sites

Yeah I believe thats what I'm doing. Sorry, I'm not a professional coder or anything, and finding documentation on starfields commands is pretty difficult at this point. But is this the proper syntax ?

 

Function EnableControls1()
  Quest __temp = Self as Quest
  mq401questscript kmyQuest = __temp as mq401questscript ;honestly I don't understand what this and the line above do, but it's how the commands are called within the MQ101 quest fragment
  kmyQuest.MQ401EnablePlayerControls()
 EndFunction

Function EnableControls2()
  Quest __temp = Self as Quest
  mq101script kmyQuest = __temp as mq101script
  kmyQuest.MQ101EnablePlayerControls()
 EndFunction

 

Also if you can think of any other idea that could possibly "reset" the player like coc does.

Link to comment
Share on other sites

In theory, if the quest script fragment is attached to the quest MQ401 or MQ101 then it should work but only if you can advance (SetStage) the quests (e.g. you can't call SetStage on the quest if the specified quest stage was already set (which is kept in save games) and the quest is not flagged as Allow Repeated Stages).

Player controls can be enabled/disabled with InputEnableLayer script but Game.SetInCharGen() can be used to disable certain game mechanics too. The InputEnableLayer instance must be valid for the functions though.

Why do you need to call or use these quest fragments? If you'd only like to open the Chargen Menu they are not needed.

Link to comment
Share on other sites

I'm trying to prevent the automatic opening of the chargen menu at the start of NG+ and replace it with a message that gives the player alternate options instead. So I've had to edit mq401questscript, as that's where the showracemenu command for NG+ was. And I edited the main quest fragment on MQ101 that controls that startup with the "Starborn, blah blah blah" message on your first NG+, to register the inputs from the replaced message. The only thing I'm lacking now is removing the inputlayer. I tested the above functions and they aren't working, but after I looked at what I was doing I've got it working now as far as removing the input layers, confirmed with debug messages, but still the same effects. I suppose I should dig deeper and see if there's a third quest with an input layer on this. Though I've been at this for a week or so, it's starting to look like moving to another cell and back is the path of least resistance.

I'm honestly wondering if it's not something else at this point, as GPCD is returning that they are all enabled, and the fact that COC fixes it. It's likely something else I did, but I didn't edit that much of the script 😕

Link to comment
Share on other sites

I see. In that case I'd comment out all lines with "SetInChargen", "InputEnableLayer", "Disable/EnablePlayerControls" in all early MQ scripts, and if it worked reenable those that aren't intended to be removed by the mod. After a quick Windows Explorer search, it seems like these calls are all over in the early MQ scripts so it may take a while to find the relevant ones. There's a small chance the player controls are disabled by the native code but I don't think so.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...