senterpat Posted June 18 Share Posted June 18 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 More sharing options...
LarannKiar Posted June 19 Share Posted June 19 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 More sharing options...
senterpat Posted June 20 Author Share Posted June 20 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 More sharing options...
LarannKiar Posted June 20 Share Posted June 20 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 More sharing options...
senterpat Posted June 20 Author Share Posted June 20 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 More sharing options...
LarannKiar Posted June 20 Share Posted June 20 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 More sharing options...
senterpat Posted June 20 Author Share Posted June 20 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 More sharing options...
LarannKiar Posted June 20 Share Posted June 20 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 More sharing options...
senterpat Posted June 21 Author Share Posted June 21 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 More sharing options...
LarannKiar Posted June 21 Share Posted June 21 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 More sharing options...
Recommended Posts