Gamebreaking bug in NWN OC (steam) & Toolset not launching

Greetings,

I have a huge bug at the start of act 2. During the introduction cutscene of act2, i have the dialogue with shandra in the ragged flagorn, nevalle comes up telling me how i was accused of murder and just when we arrive at the point where sand is supposed to show up the cutscene stops completely.

Sand is not added to my roster and the game is completely broken : I can’t change zone, when i go on the worldmap, no tags are available.

I wanted to try to create a script and run it to circumvent the issue. Basically i want to create a script that just adds sand to the roster and forces to relaunch the cinematic.

HOWEVER, i can’t manage to get the NWN2 map editor (the toolset i believe) to run on steam at all. It just crashes on startup…

Apparently this is because the editor has to run on directix9.0c specifically (not the latest directx 12). i tried to install that version of directx but it still launches with dx12.

Running as admin and compatibility mode windows XP sp2 or sp3 does not do anything. I have seen people outright reinstalling windows10 and installing dx9 and apparently it works, however reinstalling windows10 is not a possible option for me.

I tried to put a -dx9 argument on the steam launcher and as well on the executable inside the steamapps files. It does not work…

I’m really getting out of options here…
Can anyone help me?

P.S.I run on widows10.
P.S.2 I only have saves/quicksaves AFTER the bug occurred.

Okay! I just found why my toolset it not launching:

“The neverwinter nights 2: Platinum” game and “Neverwinter Nights 2: Platinum - Map Editor” were not in the same steam folders (one was on my D drive, the other on my E drive).

Once both the game and the toolset are on the same drive, it works properly. (withoud any -dx9 argument and without launching anything as admin or compatibility mode). Note however that i did install directx9.0c beforehand (in case someone stumbles upon the issue).

i’m off trying to script my way around this bug now!

1 Like

this might help - rather since your save is after the bug, think of it as a small pointer to help get you in the headspace …

https://drive.google.com/file/d/1H4x9WOhFqIk0vmgleEpa2e7NWgZAFL0u/view?usp=sharing

there’ll be other things for you to find in the toolset, particularly that dialog that broke …

 
also Nwn2Fixes

1 Like

A little late for this old saying:

NWN2 == SAVE OFTEN.

After my last run through, I had over 400 saves. Later saves are quite large (~100 mb) and are moved to a bigger drive.

2 Likes

Yeah i already saw your fix and it helped me a lot getting around how the toolset and the code works.

My first approach was to create modified version of “1001_cliententer” script but with a different name. And then i launch my modified script in debugmode 1 with the rs command while inside the tavern. The modification i made was to remove the parts where it checks if the dialogue has already happened and just force if to run by replacing the check with “if(TRUE)” (i added your fix as well).

However the dialogue does not start. I made sure the code runs through the ActionStartConversation command by putting a SendMessageToPC on the line juste before.

I suspect it has something to do with the fact that before launching the cutscene, the script tries to populate the tavern for the cutscene…but the tavern is already populated and maybe that creates some kind of conflict…

This is why i tried another approach: Exit the tavern with my party and modify the 1001_cliententer script directly. Again, i just copied your fix and tried to force launch the cutscene by bypassing the checks the script does. I just let the script launch itself by re-entering the tavern.

The very start of the cutscene launches (the dialogue 20_cs_nevalle_mu has definitely been launched), we first see the overview of the tavern with all NPC spawned, the the camera gets oriented toward the door where nevalle is supposed to be. We see the door gets opened but nevalle does NOT appear. After few seconds, the dialogue stops (it times out i think).

It seems part of the actions inside the dalogue are not executed. More specifically, the script 20a_cs_nevalle(15) does not run properly. That script with that argument is supposed to spawn nevalle and the guared (PopulateNevalleAndGuards) but…well…it decides to not do that…

Note that when that cinematic triggered for the very first time, nevalle spawned properly (only sand did not…)

This where i’m at and i’ll call it a day, i’ll try again tomorrow. If i can’t launch the cinematic i will just make sand appear in the roster and make the 3 tags available on the map. No cinematic, but at least i’ll be able the keep on playing…

P.S: Some of the comments left out by the devs inside the code are truly hilarious xD

1 Like

personally id skip trying to get the cutscene(s)/dialog(s) to play. Just open them in the toolset and look at their Actionscripts. note all variables &tc that need to be done in order to continue the game; then write whatever stuff needs to be done into a custom script and run it in debugmode. (like populating hotspots on the worldmap but there could be other stuff also)

note there might be more than 1 dialog that happens, consecutively … so keep your eyes open for how the plot progresses mechanically, all the way till you’re sure you’re in the clear and ready to head out of the Flagon (the door script starts the PartyRoster ui iirc)

1 Like

Yeah that’s what i intendend to try if i really can’t get that cutscene to work at all (but i really want to find out what is causing the bug in the first place, the behaviour is relatively odd…)

1 Like

Just a quick heads up, i think i’ll have a satisfactory correction tomorrow.

I managed to fire the dialogue with nevalle and honestly, after looking through the code, it’s a miracle things worked out when the game was released.

When i try to relaunch the cutscene, the dialogue with nevalle won’t trigger because nevalle is not in the room. But why did it fire off the first time when the bug occured you may ask? Well…that’s because there is an invisible version of nevalle standing in the room when you start the campaign. THIS version of nevalle becomes visible when needed and exits the tavern when the dialogue ends. However if i force to trigger the cutscene again, nevalle is not there anymore and the dialogue just times out. The solution : Just spawn a new nevalle.

Now i need to understand why sand does not appear anymore when he was supposed to during the cutscene and i’ll be able to make a cleaner fix (sand not appearing is the reason why his dialogue won’t trigger properly). The really odd thing is that this bug did not occur the very first time i played that game…

Fun fact: Nevalle is supposed to have two guards with him during the cutscene…but they are not implemented properly so they just skipped them x).

1 Like

yep. There are literally a few gamebreaking bugs and the ‘design’ if you can call it that gives me a headache.

not literally a headache but a strange desire to go someplace far away …

1 Like

Okay! After hours of tweaking and head scratching, i have finally made a fix that suits me. If you have the same issue as i do, just extract the files in your override folder, load your save, enter the flaggorn and the cutscene should trigger and work normaly (if your save is inside the flaggorn exit and re-enter the flaggorn).

I tried to make sure that this fix won’t break a save that already worked properly while fixing any save that is broken and i tried to make sure it won’t generate a new bug if you play a new save.

https://drive.google.com/drive/folders/1mIsS_sXtpSFA2JqKRKT_hsTnhUR39bxE

Now i’m off just enjoying the game again!

Shoutout to KevL_s, the fix you made helped me a lot to understand how the whole thing works.

1 Like

Heh…a vit too eager for victory. For some reason, with my fix, when you add sand to your group, he is not added to the group and gets removed from roster T_T . lets get back to head scratching (this code is such a mess lol)

EDIT: I changed my fix and it works properly as far as i’ve seen. I changed the file inside the google drive.

cool. will have a look tomorrow and see if anything (obvious) rubs me the wrong way :)

ps. never seen that googleshare thingie…

[edit]
heya, not the most elegant/robust piece of code ive seen but if it works it works :)

 
@others
to be clear, my fix directly addresses issues with the Roster and must run/be in place before Act 2 starts. It removes and readds Sand and Shandra to the rosterlist.

@meldigoth’s fix should be run only after Act2 has started and the Nevalle+Sand dialog has failed; this seems to rather nudge the engine to tell it hey, Sand (and Shandra) really are on the Roster. It sets things up and (re)runs the dialog …

 
ps. I glanced through the dialog itself and looks like its actionscripts can run redundantly without probs – so thats good

1 Like

The thing is i could not test if my fix work properly when the act2 starts normally (since i do not have save available). But it should fix the very first cutscene launch and avoid having the bug occur in the first place.

I do not expect people to remove my fix from their override folder once the broken save is working properly again. And i would not want to create a bug if that player starts a new game.

And to you, the person looking for help on the internet and reading this, i would advise you to install this fix in you override folder as well:

https://drive.google.com/file/d/1RHMktUlF9Tt-OXDEjp3jb9KhdtrJfHrW/view

Or else you will have a similar bug occur when the next NPC is added to the roster :wink:

P.S: It is possible you took a look at an “older” version of my fix. I re-edited it a second time because i forgot to add the part where it fixes the very first cutscene launch :s .

i can’t vouch for your script (untested) but, uh, it almost looks reasonable enough … (i looked at the 1.1 version)

will say that i’ve done that fix for 6 rostermembers* for a handful of people over the past few years. In each case, simply removing and readding the respective companion to the rosterlist was enough to let things continue

*
- Sand and Shandra
- Casavir
- Zhjaeve
- Bishop
- Ammon Jerro

ofc my script(s) rely on the player loading from a save before the bug happens. And, uh, I’ve wracked my brains in an attempt to ensure compatibility with stock mechanics (so that the scripts can stay in /override transparently).

note, eg. that i intercepted this block

    if (nAct >= 2)
    {
        PutCompanionInPlace("sand", SAND_SP_TAG);
        PutCompanionInPlace("shandra", SHANDRA_SP_TAG);
    }

instead of later. I don’t want to assume that that block will work fine … (on first entry, on reloads, and on subsequent entries)

to cut to the chase

honestly?* I think more thought – and at least 1 playtest – is required before that’s warranted … preferably at least 5, and deliberately try to break it each time …

maybe that’s just me
/shrug

 
* as in “if you want my honest opinion”

1 Like

Yeah the playtest is the best way to make sure it would work. I guess i could try to “speedrun” act1 on a new save for that.

2 Likes

iirc, a save needs to be after (before?) fighting Zeeaire in the githyanki caves … then its a rather long series of several cutscenes till Sand shows up …

its a hassle (trust me ;)

1 Like