Git Product home page Git Product logo

nvse's Introduction

New Vegas Script Extender (xNVSE) expands the engine and scripting capabilities of Fallout New Vegas.

Download

Download the latest NVSE

-Changelogs and all releases are provided in the releases section. Do not try to install using the Code .zip source code button GitHub shows.

Releases are also available on Nexus Mods and Mod Pub.

Installation

  1. Copy the .dll and .exe files to your Fallout NV directory. For Steam this is usually in your Program Files folder under Steam\steamapps\common\Fallout New Vegas\. If you see files named FalloutNV.exe and FalloutNVLauncher.exe, this is the correct folder. Do not copy these files to the Data folder or install it with MO2 as with a normal mod.

  2. Launch NV via running nvse_loader.exe or, if you have patched the game using FNV 4GB Patcher, FalloutNV.exe. Enabling the Steam Community option (enabled by default) will allow you to launch the game via Steam's standard UI.

xNVSE is compatible with the Steam and GOG versions of the game. German No Gore, Xbox Gamepass, and Bethesda.net versions are not supported. Epic Games Store users can use the Epic Games Patcher.

Support

For support, contact us in the xNVSE Discord server. For bug reports and other problems, create a new GitHub issue.

If you experience a crash related to installing xNVSE, please try disabling all other mods to see if xNVSE is the culprit. If the problem persists, please include a crash log generated by a Crash Logger inside your bug report.

Description

New Vegas Script Extender (NVSE) is a modder's resource that expands the scripting capabilities of Fallout: New Vegas. It does so without modifying the executable files on disk, so there are no permanent side effects.

For documentation on how to write scripts utilizing NVSE, see GECK Wiki.

Making a Plugin, and/or Contributing

See DEVELOPMENT.md.

Credits

The original NVSE was created and maintained by Ian Patterson, Stephen Abel, Paul Connelly, and Hugues LE PORS (ianpatt, behippo, scruggsywuggsy the ferret, and hlp)

xNVSE is developed by korri123 (Kormákur), jazzisparis, and Demorome.

xNVSE has contributions from lStewieAl, c6 and carxt

nvse's People

Contributors

anhatthezoo avatar averyuncreativeusername avatar c6-dev avatar carxt avatar demorome avatar iranrmrf avatar jazzisparis avatar korri123 avatar lstewieal avatar senjay-id avatar wallsogb avatar yvileapsis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nvse's Issues

NVAC Error

I just started getting this error reported by Vortex today.

-"nvac.dll" (): reported as incompatible during query

How can I fix this?

nvse.log

Why is there suddenly a limit on using In-line variable declaration?

After I updated 2 days ago, my scripts in my project broke.

It was the fact that I'd taken up the habit of using In-line variable declaration but apparently you guys now have some sort of limit on them now. Now I can only use a handful of inline declarations and then the NVSE Compiler (not Script Compiler) will tell me "Unable to resolve variable type [VarName]" I reverted to the previous version of xNVSE and added 20 more in-line variable declarations with no issue.

Was wondering what is the reason for this limit and also what is that number set to?

Oh well, not a real problem, I'll just declare them at the top of the script like usual, this was just allowing a bit of text reduction. Like, as in if i'm only going to use a variable once, why waste the line space to type it in two places instead of just once....

Algohol Function V3Normalize "Expected end of line." compile error in GECK

Hello and thank you all for this awesome project!
I was playing around with coding ideas and got an "Expected end of line." error while compiling using the V3Normalize function in a script.

This is the only algohol function that wont let me compile my script.

I'm very new to Fallout scripting so I don't know that I'm just overlooking something..

Test script used:

scriptName SPLTestScript01

float fEulX
float fEulY
float fEulZ

Begin onActivate
	set fEulX to 0.2547
	set fEulY to 1.9988
	set fEulZ to 25.2234

	V3Normalize "fEulX" "fEulY" "fEulZ" fEulX fEulY fEulZ 		;End of line error
	;V3Norm "fEulX" "fEulY" "fEulZ" fEulX fEulY fEulZ 		;Same end of line error

	Print "Result of the floats: X: " + $fEulX + ", Y: " + $fEulY + ", Z:" + $fEulZ

End

SetScript seems to be broken.

When setting SetScript on the base object of a creature that has a unique reference, the code runs when introduced to a clean game (either a save that hasn't seen that mod yet or a new game), but if one saves, closes the game, then reloads the script is no longer set on the actor.

Here's my use case in an initialisation script tied to a quest that starts enabled:

    If GetGameRestarted
        SetScript INHIBPrimmPowderGangerOverrideSCRIPT, PrimmPowderGangerOutside
        SetScript INHIBPrimmPowderGangerOverrideSCRIPT, LvlPowderGangerGunNVBisonSteve01
        SetScript INHIBPrimmPowderGangerOverrideSCRIPT, LvlPowderGangerNVBisonSteve01Sleeping
        SetScript INHIBPrimmPowderGangerOverrideSCRIPT, LvlPowderGangerNVBisonSteve01Flamer
        SetScript INHIBPrimmPowderGangerOverrideSCRIPT, PrimmPowderGangerRifle
    EndIf

And here's the script that's being set:

scn INHIBPrimmPowderGangerOverrideSCRIPT

short noCount
short maxDone

BEGIN OnLoad
    Print "Testing OnLoad."

    If GetDead == 1
        Disable

    ElseIf nvPrimmDeputyConv.iTownState == 1
        Let noCount := 1

        Kill
    EndIf

    If maxDone == 0
        Print "maxDone 0"

        If IsInInterior == 1
            Print "Interior +1"

            Let INHIBOnUpdateQUEST.primmCleanupInsideMax += 1

            Let maxDone := 1

        Else
            Print "Exterior +1"

            Let  INHIBOnUpdateQUEST.primmCleanupOutsideMax += 1

            Let maxDone := 1
        EndIf
    EndIf
END

BEGIN OnDeath
    Print "Testing OnDeath."

    If noCount == 0
        If IsInInterior == 1
            Let INHIBOnUpdateQUEST.primmCleanupInsideCount += 1

        Else
            Let  INHIBOnUpdateQUEST.primmCleanupOutsideCount += 1
        EndIf
    EndIf
END
 
BEGIN GameMode
   Print "Testing GameMode."
END

On the clean load the script functions perfectly, it does all that it's intended to do and shows the prints. However, post-reload, not even the prints work. It's as though the actors are using their original scripts and not the one that it's supposed to be replaced by.

I read in one thread that SetScript was broken in NVSE v4.5-ish so I don't know what's causing my problem. I created a thread on Nexus Mods about it and it was suggested that I raise an issue here to see if this is a problem with NVSE itself still.

Sorry to be a bother.

Edit:

I've been investigating this since I want to be as much help as I can if I'm going to ask for help. So here's what I have...

Clean save: Everything works okay.
Reload, walk to Primm: Works rarely.
Reload, fast travel to Primm. Works rarely.
Reload, coc to Primm: Never works.

Here's where it gets interesting...

Start the game, get to Primm (via any means), save in Primm, load save... Everything works??? Close game, restart game, load Primm save... Nothing works. Reload Primm save... Works????

Okay, I... What? I think... Is it only setting the scripts after the actors have loaded but only if the save isn't clean/reloaded? That seems to be the behaviour I'm observing, I think? I'm pretty new to this so I can't say for sure but... that fits the evidence, maybe????

So if you're introducing the code to a clean save or reloading the game after the game has already started then everything works, but on a fresh load that isn't a clean save it only sets the scripts after the actors have loaded????

???

This is all I have for you. This is weird. My mod Full and Empty exhibits the same behaviour with milkable brahmin as well since I use SetScript there too, if you want something to test for yourself.

Eidt:

Of course, I'm making an assumption there. It could be that on first load of a non-clean save it simply does nothing, not that it only works on actors that have loaded. It might just do nothing, that's just a hunch.

To fix this, I'd say look into what's happening when loading a saved game which isn't clean. So use Full and Empty as an example and stand near some brahmin. You'll see this...

First load in clean: Milkable brahmin.
Close game, start game, new load in not clean: Non-milkable brahmin.
Any new load ins: Non-milkable brahmin.
Load in, then reload the same save: Milkable brahmin.

Edit:

Using excessive saves, loads, clean saves, and so, so many debug prints I may have another theory but... I'm tired, confused, and without knowing how it works I can only guess.

When SetScript is called, it stores that exact script into the save. If the game is saved, closed, the script is updated, and the game opened and loaded, for the most part it won't update the script. Sometimes, on the load of a save, for some reason, it will. This means that even though the script in the mod is changed and new, the one used by SetScript isn't that script.

A breakthrough with this happened when I was using debug prints and I had a "Wait a minute, that debug print isn't worded that way right now." I quickly loaded up my esp in notepad (the quickest way for me to check without waiting for FNVEdit/GECK to load, don't judge) and checked the script. It was updated in my mod but not in the game. That means that SetScript seems to take a copy of the script, store it in the save, then not update it?

I guess???

I don't know if any of this is helpful, only that SetScript isn't behaving properly.

Add a license

You should get permission from all contributors to add an open license to this, so people can legally contribute!

NVAC Re[orting as Incompatible?

NVAC seems to be incompatible with the new version of NVSE. [quote]plugin C:\GOG Games\Fallout New Vegas\Data\NVSE\Plugins\nvac.dll (00000001 NVAC - New Vegas Anti Crash 07050000) reported as incompatible during query[/quote]

Calling a UDF from a set of dialog topics, passing a different integer to the UDF in each topic causes oddities

I have a dialogue topic with about 8 entries. Each topic executes a script that simply has a Call MyUDF 1 with the number incrementing per topic.

It works fine until you press more than a few of these topics. At that point is sort of gets stuck executing the first two commands.

For example if Call MyUDF 1 and Call MyUDF 2 are used. It'll then loop between these no matter what else I click. It's quickly resolved by exiting dialogue and re-entering but it continues the same behavior after two different presses.

Hope this is an accurate bug report. Thanks for the great work.

Geck extender behavior?

I downloaded 6.1.0 and not sure about this but the latest Geck extender is tossing up modal message boxes with "Error: current script stack is empty." when in any quest examining topics. It never did that before.

NVSE Plugin Example not compiling in new versions

NVSE PE not compiling in 6.16 and 6.17 versions of nvse.(in version 6.15 compiles. I checked)
Visual studio 2019 throws an error:
GameAPI.cpp(2389,43): error C2653: 'NVSEVarType': is not a class or namespace name
GameAPI.cpp(2389,56): error C2065: 'kVarType_String': undeclared identifier
GameAPI.cpp(2389,4): error C3861: 'AddToGarbageCollection': identifier not found
3 Errors in:
if (!scriptVar->ref || scriptVar->ref == script->quest || scriptVar->ref == refr) // if not an external script
AddToGarbageCollection(eventList, var, NVSEVarType::kVarType_String);
if i comment it, declared 'NVSEVarType', 'kVarType_String, 'AddToGarbageCollection' or include ScriptTokens.h
Visual studio 2019 throws an another errors:
GameAPI.obj : error LNK2019: unresolved external symbol "public: __thiscall ScriptParsing::ScriptIterator::ScriptIterator(class Script *,unsigned char *)" (??0ScriptIterator@ScriptParsing@@QAE@PAVScript@@PAE@Z) referenced in function "bool __cdecl ExtractSetStatementVar(class Script *,struct ScriptEventList *,void *,double *,bool *,unsigned long const *,unsigned char *,class TESObjectREFR *)" (?ExtractSetStatementVar@@YA_NPAVScript@@PAUScriptEventList@@PAXPANPA_NPBKPAEPAVTESObjectREFR@@@Z)

GameAPI.obj : error LNK2019: unresolved external symbol "public: __thiscall ScriptParsing::SetToStatement::SetToStatement(class ScriptParsing::ScriptIterator const &)" (??0SetToStatement@ScriptParsing@@QAE@ABVScriptIterator@1@@z) referenced in function "bool __cdecl ExtractSetStatementVar(class Script *,struct ScriptEventList *,void *,double *,bool *,unsigned long const *,unsigned char *,class TESObjectREFR *)" (?ExtractSetStatementVar@@YA_NPAVScript@@PAUScriptEventList@@PAXPANPA_NPBKPAEPAVTESObjectREFR@@@z)
and
GameAPI.obj : error LNK2019: unresolved external symbol "void __cdecl AddToGarbageCollection(struct ScriptEventList *,struct ScriptLocal *,enum NVSEVarType)" (?AddToGarbageCollection@@YAXPAUScriptEventList@@PAUScriptLocal@@W4NVSEVarType@@@Z) referenced in function "bool __cdecl ExtractSetStatementVar(class Script *,struct ScriptEventList *,void *,double *,bool *,unsigned long const *,unsigned char *,class TESObjectREFR *)" (?ExtractSetStatementVar@@YA_NPAVScript@@PAUScriptEventList@@PAXPANPA_NPBKPAEPAVTESObjectREFR@@@Z)

AddItemOwnership and stacks

I am using AddItemOwnership to add items to the player and I notice that if I add a single energy cell at a time for example they don't stack even if they have the same onwneship. (last 2 images)

And If I add them all at once I can see a single one in my inventory until I drop it and the rest appear in it's place.
AddItemOwnership (first 5 images). It's just the first one that retains ownership.

1
2
3
4
5
6
7

Missed versioning one of the DDL's again?

Just noted... the steam ddl version does not match in 6.1.4 to the others, not that it really matter but my is funny my mod manager thinks the archive is for 6.1.3 when it's not, ( must be stupid to go by the last file? Anyway keeps telling a new version in available)... Iikely i'll just edit the version info myself. ;)

NVSE won't launch properly

I have placed the NVSE .exe and .dll in the folder with the NV launcher but it does not launch when i run new vegas, nor does it run when i use the NVSE loader, I don't get any errors it just doesn't seem to run as when i run the command GetNVSEVersion it says that is not a valid command. Any help in figuring out why this is the case would be appreciated.

ModOrganizer Issue

It doesn't run with ModOrganizer. It tells me that nvse_loader.exe is a virus.

CASM with MCM mod - Quick Load function broken

Everything else seems to work but I have noticed, when I use the quick load hotkey, the popup message says loading in the corner but nothing happens. This mod has always worked in the past so I assume this is to do with NVSE?

NVSE Couldn't Inject DLL

Trying to install xNVSE on a fresh install of New Vegas (GOG edition) but running into an error when attempting to run the NVSE Loader. When I run the loader as admin the command prompt pops up as it normally would, but then I receive a "Couldn't Inject DLL" error. After this I'm able to successfully run the launcher, which launches New Vegas without issue, but NVSE isn't being detected as the "getnvseversion" command throws back:

"SCRIPTS: Script 'SysWindowCompileAndRun', line 1:
Script command 'GetNVSEVersion' not found"

The game itself runs fine outside of this issue, but obviously I'm unable to install any mods that require NVSE to function properly.

I'm not using any mod organizers currently, just installing xNVSE manually. All the files are in the correct folder, I'm using a fresh install of New Vegas, and I'm running the NVSE Loader as admin so I'm at a loss for what the root of the problem is.

X mod breaks since xNVSE 6.0.7 release.

Bug Report

Flashlight NVSE has been broken since the xNVSE 6.0.7 release. With 20K+ endorsements, makes it a popular mod.
Reverting to xNVSE 6.0.6 mod works as expected.
No relevant logs were found.

Expected Behavior

  • Given I am a user that has installed said mod
  • When I attempt to enable the flashlight, in-game, using the default key J
  • Then I should see the flashlight being enabled
  • And I should hear a noise indicating flashlight being enabled

Actual Behavior

  • Nothing happens

Temporary solution

As long as no other new mods are installed that rely on >= NVSE 6.0.7 should be OK to run with old version.


Debugging attempt

  • Install Flashlight NVSE. Extract fomod, and install it directly as a file.
    • This was the only way to achieve all green checkmarks on installation GUI
  • On conflict resolution, load it after oHUD; this resolves an issue with relevant mod throwing an in-game popup error when attempting to access it on The Mod Configuration Menu
  • Add Flashlight head item quickly through console command:
    • player.additem {add_your_mod_index_here}004507
    • Use Vortex -> Plugins -> Filter Flashlight -> See ModIndex Column to find your {add_your_mod_index_here}
  • Enable NVSE Logs:
[Logging]
EnableGameErrorLog=1
[RELEASE]
LogLevel=5

At this point, after multiple attempts to enable flashlight with relevant hotkey, I was unable to find any relevant error logs.

Remember to disable logs to speed up game again

GOG and nvse_steam_loader.dll

The steam loader is ignored when using the GOG version. This makes anything in nvse_config.ini ignored. Plz fix GOG

Script Errors with 6.1.7, bWarnScriptErrors Not Functioning Correctly

After installing xNVSE 6.1.7, I began experiencing script errors as I played, apparently even within FalloutNV.esm, which should of course be impossible.

20210727031944_1

20210727054826_1

I don't know what triggered the first one, but the second was easily reproducible. I simply had to open the Pip-Boy and play around for a while. After testing several times, the script error occurred sooner or later every time while 6.1.7 was installed, but never occurred after switching back to 6.1.6, even after testing for much longer than it ever took for the error to occur under 6.1.7.

Error code with new 6.0.1

Application load error 3:0000065432, after updating to the most recent script extender I received this error from trying to launch through vortex's manager. I have never received this error before and I normally just drop the .7 file into the mod manager, I tried doing a manual install and I get the same result. I'm unaware if I'm the problem, vortex is broken, or there's something wrong with my steam.

Game froze after installed the latest NVSE

I just updated my game with the latest release of NVSE and right after I got into the main menu I started loading up my latest save game when I click to continue the game froze but the music still going on. I've read some issues with scripts and after I tried to re-install one of the previous releases but in that case my game crash after I tried loading any of my saves.

"someNumber % 0" causes a crash.

Tested on stable release v6.0.9 and on latest beta.

Happens in scripts (quest / UDF) as well as in console.

What's weird is that the code does seem to avoid performing _ % 0 correctly. I just stepped through the latest beta code and it correctly went to context->Error("Division by zero"); (in Eval_Integer()).

Meanwhile, _ /= 0 and _ / 0 don't cause a crash and just report the error in console. But they seem to have more or less the same safety mechanism (if (r != 0))...

Here's the error as reported in VC (while debugging the latest beta):
image

I only found out because I was trying to add %= and that was also causing a similar crash 😅

Edit: I said "latest beta", but because of some Git App weirdness the latest version I could test on was the merged version of "Ar_DumpF" branch.

NPC's sometime go unconscious?

i.e. Willow 1.1, or Veronica So it seems since 6.1.2 if you you leave them sandbox (waiting) at home or in the lucky 38 for some time, then come back and try to talk to her. I'm just debugging what's happening there yet. of course the only way to get them back is to resurrect them ... be sure to take any items you gave them off them though. I've also run into some random npcs which seem to do the same.

GetPackageCount always returns 0.

GetPackageCount is broken and will always return 0 on every NPC that it's used on. For example I checked it on the White Glove Greeter at Ultra-Luxe. I know for a fact that this NPC has AI packages. But when using the function it says he has 0.
ScreenShot0

Example plugin doesn't compile

The example plugin that is provided won't compile. It fails with this error:

2>GameAPI.obj : error LNK2019: unresolved external symbol "public: char const * __thiscall StringVar::GetCString(void)" (?GetCString@StringVar@@QAEPBDXZ) referenced in function "bool __cdecl v_ExtractArgsEx(unsigned long,struct ParamInfo *,unsigned char * &,class Script *,struct ScriptEventList *,char *)" (?v_ExtractArgsEx@@YA_NKPAUParamInfo@@AAPAEPAVScript@@PAUScriptEventList@@PAD@Z)
2>GameAPI.obj : error LNK2019: unresolved external symbol "public: unsigned long __thiscall StringVar::GetLength(void)" (?GetLength@StringVar@@QAEKXZ) referenced in function "bool __cdecl v_ExtractArgsEx(unsigned long,struct ParamInfo *,unsigned char * &,class Script *,struct ScriptEventList *,char *)" (?v_ExtractArgsEx@@YA_NKPAUParamInfo@@AAPAEPAVScript@@PAUScriptEventList@@PAD@Z)
2>GameAPI.obj : error LNK2001: unresolved external symbol "class StringVarMap g_StringMap" (?g_StringMap@@3VStringVarMap@@A)
2>D:\Code\eezstreet\NVSE-master\nvse_plugin_example\Debug\nvse_plugin_example.dll : fatal error LNK1120: 3 unresolved externals
2>Done building project "nvse_plugin_example.vcxproj" -- FAILED.
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ========

loading in freeside

i downloaded the mod but i am still getting the infinite loading screen in freeside

Auto-Equip not working

Please check with this great plugin (Auto-Equip), after install new version 6.12 I can not use correct this plugin anymore. When holstered the weapon I am without equipment
Thanks

Couldn't find NVSE DLL

When I launch my game I get an error saying "Couldn't fine NVSE DLL *\Fallout New Vegas\nvse_1_4ng.dll".

I'm using 5.1.6, so that file shouldn't be required any more, right?

Script Extender Log Reports Incompatible Plugins

Mod Organizer2 (for Fallout NV) is reporting "You have one or more script extender plugins which failed to load!

The failed plugins are:
• NVTF version 9 (NVTF.dll, NVTF - New Vegas Tick Fix) reported as incompatible during query.
• OneTweak version 1 (OneTweak.dll, OneTweak for FNV) reported as incompatible during query."

But I haven't changed any of the three installs - xNVSE, NVTF, nor OneTweak. They were working fine before. It was sudden and very disconcerting. Please advise. Thank you.

DebugTextCreate Function is no longer functional since 6.1.2

Before the update, this function was able to print an On Screen Display at a specified location. There are several other similar functions to go with it. At the current time, the console will accept this function but do nothing, nor will it work from a script.

A test in the console should actually cause On Screen Text to become visible:
DebugTextCreate "MyDebugText1" 100 100 "My Text"

Issues with GetObjectHealth

I was noticing some problems with my scripted-based overhaul, CFAO, when updating my xNVSE version to the latest version. I was having issues with some creature types having excessive amounts of health.

Been getting several GECK crashes when clicking Save Script button

Unfortunately whatever is happening is bad enough that no crash save was generated each time it happened.
I've been using a Lambda function/script and this is the only time I've seen that happen. I mean, I know that I'm still getting the hang of Lambda, but I wouldn't think the geck should drop out like that an not even be able to catch a crash save.
So I thought I'd come here and mention it in case it's relevant to something.

(i made sure to check for xNVSE updates)

Possible issue with erasing from numeric map using slice notation (xNVSE 6)

Upon switching to xNVSE6, a user of mine reports a script of mine aborting early during my inits because a safety condition detects that a numeric map contains more than 10 elements, and should only have 8 at that point.

For the moment, without further intel from the user, I attribute this to the following line that precedes it in my init cycle not working as before:
ar_erase SpunkMCMH.aMain[0], 2:10

where aMain is a regular array containing a numeric map under [0], whose elements are numbered sequentially 1-10 (they are stringmaps containing my MCM submenus - I reset the whole system on game load).
The map always contains at least the first two, the rest aren't guaranteed to be there because most of my subs are toggleable.
Erasing 2:10 like that used to work under any variation of those circumstances.

update-structs build causes strange issue in Johnny Guitar NVSE

The update-structs build will cause an unordered_map inside johnnyguitarnvse to fail. Iterators returned by the map will have null values inside _Getcont, causing != operator overload to fail in a certain condition.

How to reproduce:

  • Use the update-structs build I attached below as NVSE for game
  • For debuggability use the debug build of JG I attached instead of one that's released
  • In console, do player.kill

The next loading screen will cause an error message and crash.

If anyone sees any code that was changed here that might cause these issues: https://github.com/xNVSE/NVSE/compare/update-structs (see Files Changed)

Map in question: https://github.com/carxt/JohnnyGuitarNVSE/blob/master/JohnnyGuitar/EditorIDs.h

Does not happen with currently released xNVSE (so I may have fucked something up with the merge).

1
2
3

Hmmm, Here I am again...

I've been moving back and forth trying out 6.0+ the questions I have are concerning backward compatibility.

Synopsis, I had been running 5.1b6 for a while, along with 210 (esm/esp) in the mix. Tweaked ran flawlessly. When I update to 6.0.0 I moved back due any mod which used arrays went crazy with errors - I think counted 14 of them rendered useless or unstable enough to cause flaws in cosaves or even a ctd on a load of a save created under the environment, So, moved back to continue play from an old save, then slowly as 6.0.1 through 6.0.5 - at 6.0.5 I was down to 4 mods misbehaving.

So, 6.0.6 was released - and what I got then was after upgrade, a load-up of a save produced under 5.1b6, then a save under 6.0.6 and reloading those new saves going forward - mods complained of missing cosaves - although the files are there, that did not happen under 6.0.0 through 6.0.5.

Ar_Erase is not clearing arrays and seems to be leaving behind ?Unknown Element Type?

Ar_Erase is not clearing arrays and seems to be leaving behind ?Unknown Element Type?
This is occurring only in the new 6.2.6 release.

Below is an example script:

Array_Var MyArray
Let MyArray := Ar_Construct "Array"
Ar_Append MyArray, "My new string within the array."
Ar_Erase MyArray
Ar_Dump MyArray

Below is the output of the Ar_Dump

** Dumping Array #22 **
Refs: 1 Owner 0F: LeaveNoWitnesses.esp
[ 0.000000 ] : ?Unknown Element Type?

As you can see, using Ar_Erase still leaves it in the array and makes it show as ?Unknown Element Type?

Possible issue using eval with array functions

I'm seeing error reports that suggest an issue with the use of eval in conditions that contain array functions.

In the first example, a key contained in the 'svRole' string var passes the ar_haskey validity check when it shouldn't
if eval 0 == ar_haskey SpunkVARZ.ar_PerksNeg, $svRole
...
break
...
elseif ...
let rPerk := SpunkVARZ.ar_PerksNeg[svRole]

which results in the 'let' line correctly throwing the error "Array does not contain key". The issue is ofc that the script shouldn't gave gotten that far down.

Similarly, in the sexoutNG framework mod,
if eval(Ar_Size arTodo) > 0
seems to evaluate to true despite the arToDo array not yet being populated, throwing errors later in the script. (Personally, I'd write that line like 'if eval 0 < ar_size arToDo, but I'll assume that eval has so far evaluated the entire line. Perhaps it now only evaluates what's between the parentheses, or perhaps it's related to the issue above.

Issue with array accessing catching bracket as operator

Forgive me if I am uninformative, or if this is a duplicate of #17, I'm not really informed on the technical side of NVSE. Using the latest NVSE (6.0.4), there is an error when parsing arrays resulting in an error:

Invalid array access - expected numeric index , recieved string
Operator [ failed to evaluate to a valid result

This has been documented on a forum thread, here, and seems to have been isolated as an issue within xNVSE rather than the mod. I had a load order that could reproduce this, but steam re-downloaded the game and I can no longer reproduce it.

Something has changed about how Functions accept "text" vs $string

Another weird thing I noticed.... My mod accepts a lose BatchScript runs it with rActor.RunBatchScript. Before the update, my lose scripts were running fine. I actually rolled back the NVSE update tested, then put the new update back, then rolled back again.... to be sure.

After the update... something changed about the way RunBatchScript accepts it's String.
Before the update this was running:
Let bThemeScriptHasRun_B := rActor.RunBatchScript ("data" + $ScriptB_FileName)

After the update that line stopped running. Not even this will run
Let sTemp := ("data" + ScriptB_FileName)
Let bThemeScriptHasRun_B := rActor.RunBatchScript $sTemp

(Note: there is a backslash after "data", it just doesn't show up once i submit this textbox)

This bug actually breaks my mod....So I'll be skipping this particular xNVSE update so that I can continue working on my project. However I am planning to release the first version very soon but I cannot until this works again. Sorry to be the one to bring bum news. Thanks.

Issue with testexpr

This line:
if testexpr arOp["ValTgt"] := athisOp["DynOr"][1]

returns true when aThisOp doesn't contain the key "DynOr", and clearly shouldn't

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.