Académique Documents
Professionnel Documents
Culture Documents
1 Beta 04
Fix:
versions where not coherent.
5.1 Beta 03
Fix:
CTD when starting a new game with the NoGore edition of NVSE.
5.1 Beta 02
Fix:
Update3D works again.
5.1 Beta 01
Fix:
Possibly Important: ExtractArgs used in Compiler Override mode was always returning
true even if the argument types were wrong.
pretty much all commands are affected by that change so it is
possible for your mods to suddenly display errors they weren't before.
Change definition for SetWeaponAmmo and SetWeaponProjectile to allow
for AnyForm.
Change a few functions to take either an actor (ref) or an actorBase
(npc). It was implemented in the code but not in the function definition.
GetBaseSpellListSpells, GetBaseSpellListLevSpells,
GetBasePackages, GetBaseFactions, GetBaseRanks and GetHeadParts.
Fix ToggleUIMessages(True), thanks to RoyBatterian
SetPermanent applies to reference as intended rather than to base forms
(as that would simply duplicate IsQuestItem).
Possible bugfix:
Added multi threading handling to the calling of functions due to hard
to track reports of function call failling.
I have no idea if it will help, but..
Also, those calls error reports have been stligthly changed to
help distinguish possible causes.
Changes:
GetSourceModIndex will accept any form as the optional parameter.
Remove restriction on Set3D for the playerCharacter (highly
experimental) and known to have a visual glitch. When compiled in debug mode it is
not working at all.
GetPermanent should persist accross saves now.
New:
SpecialIdles for NPC and Creature:
[actor or npc or creature].GetNthAnimation index [npc or creature
or actor]
returns the nth animation selected on an NPC or a creature
as a string_var
[actor or npc or creature].AddAnimation animationName [npc or
creature or actor]
Select an alternate animation for an NPC or a creature
[actor or npc or creature].DelAnimation animationName [npc or
creature or actor]
Deselect an alternate animation for an NPC or a creature
[actor or npc or creature].DelAnimations [npc or creature or
actor]
Deselect all alternate animation for an NPC or a creature
[actor or npc].GetClass [npc or actor]
Returns the class of an NPC
[actor or npc].GetNameOfClass [npc or actor]
Returns the class name of an NPC
ShowLevelUpMenu
Optional Alternate Update3D for the player (set AlternateUpdate3D to 1
in nvse.ini section [RELEASE] and/or [DEBUG]). It has an effect but with a huge
visual defect that should be temporary.
Misclaneous: New data interface for plugin authors needing internal
offset to NVSE code.
5.0 Beta 03
Fixes:
The return type for GetModLocalData was set on SetModLocalData. Both
are restored to their proper value.
HasVariable would return true when either parameter was invalid.
JIP (JazzIsParis) wrote a version of EquipItem2 that works for FNV.
Changes:
Added creature specific flags and template flags to ActorBaseData
Decoding from JIP's nvse plugin up to v21.00
Known issue:
SetScript on a loaded ref has no effect until the reference is
reloaded.
SetScript on a BaseEffect will not be detected by an active effect.
RunScript is unreliable. It may fail to start, and will only run the
first script block once, and then only if it is a GameMode block.
New:
GetCurrentQuestObjectiveTeleportLinks
returns an array of the path to the current objective targets
the path is an array of zero or more doors (called
teleportLink) followed by the target itself.
Works only on the current objective of the current quest for the
player, so no parameters required.
Will build the teleportLinks if needed, but activating the quest
should have done that already.
5.0 Beta 02
This version adds support for the russian version (different steam appid)
Fixes:
ListClear could generate a CTD on save if forms were added through
AdFormToFormList (but not with ListAddForm).
Still the handling of numAddedObjects is not 100% coherent.
Should be looked into.
Get/SetActorBaseFlagsLow/High was operating on the wrong flags.
GetActorFIKstatus checks the FIK flag directly.
Changes to GetParentWorldspace broke it for some references. Corrected
by merging the two methods.
Dispatching an unhanded user defined event from an event handler
resulted in a CTD.
Changes:
IsPlayable supports TESRace also.
5.0 Beta 01
Version bumped to 5 because of a change in a plugin interface which did not
have a version.
Before checking the NVSArrayVarInterface kVersion, make sure NVSE version is
at least 5
Fixes:
bipedFlags in TESBipedModelForm restricted to a byte. Some armors seem
to have uninitialized data in the higher bytes.
Changes:
Decoding from JIP's nvse plugin up to v8.0
NVSEArrayVarInterface:
added version. kVersion is 2.
added GetArrayPacked.
Returns if the array is packed (an array) or not (a
map). Useful when accessing all arrays globally.
New
GenericCheckForm:
Checks if said form is present in the list of form. (same
encoding as the other GenericXXXForm functions)
let anIndex := GenericCheckForm whichEmbeddedList
objectContainingTheEmbeddedList formToAdd
-1 means invalid parameters
-2 means not found
Anything positive (>=0) is the index
GetBit
Gets the value of a bit inside a bitmask
let aBool := GetBit bitmask bitIndex
bitmask is an integer.
bitIndex starts at 0 and should not be greater than 20.
Higher values are unreliable and prone to conversion.
ar_Packed
Returns if the array is packed (an array) or not (a map). Useful
when using an array_var defined in another plugin.
4.6 Beta 04
Changes:
Decoding from JIP's nvse plugin up to v7.0
OnOpen/OnClose extended to container that weren't detected.
New
Get/SetEyesFlags
get or set the eyes flags.
let aTest := GetEyesFlags eyes [bitmask]
bitmask checks only the bit set. (see v2 beta 6 below for
how to specify the flags)
Get/SetHairFlags
get or set an hair flags.
Same syntax as Get/SetEyesFlags.
Another useful value for bitmask:
8 = Fixed ( = SetBit 0 3 )
Get/SetActorFIKstatus or Get/SetFIK
get or set the Foot IK status of an actor
requires to be called on a ref that is an actor
let aBool := anActor.GetActorFIKstatus
anActor.SetFIK 1
4.6 Beta 03
Fixes:
OnPackage events names were mixed.
OnCombatEnd parameters were wrong.
Using CIOS inside event scripts possibly led to CTD.
OnDrop should work now.
GetFactionRank returns -1 when called with an invalid parameter.
Vanilla function which return forms are identified as such.
ConsoleOutputFile will not double "Carriage Return" on each line.
Some functions parameters changed from TESObject to AnyForm, so a
literal value can be specified in scripts rather than needing a variable to hold
the value.
IsScripteed, GetScript, RemoveScript, SetScript, IsFormValid,
RunScript. (Please report any other where the change would be beneficial).
Changes:
The second parameter for OnDrop is changed from a reference to a form
to handle case where no valid reference are created during drop. In that case the
value is the baseForm.
IsScripted, GetScript, RemoveScript and SetScript work with
EffectSetting now (aka MGEF or Base Effect) IF the archtype is Script.
Merged edits to GameForm.h from JazzIsParis NVSE plugin v3.
OnTopic
This will let you modify the subtitle of a text "spoken" by the
PC.
Fired before the text is rendered on the screen, also before
global text replacement (&global; place holders) is done, so the engine can
properly calculate text size on screen.
Args content:
eventName = OnTopic
senderName = NVSE
tileName = the name of the TileText that will be containing
the text in the MenuRoot arborescence.
text = Text as entered in the plugin in the Topic text or
the prompt.
To change the text on return, change the value of Args["Text"] in
your handler.
The speaker name is assumed to be the player.
Added:
Get/SetFlagsLow, Get/SetFlagsHigh: gets or set individual flags on any
form. Of course not all flags should be used, and not all flag will have an effect
in game.
(see v2 beta 6 below for how to specify the flags).
HasConsoleOutputFile (HasCOF)
no parameter, return not null if a COF have been set by SCOF.
GetConsoleOutputFile (GetCOF)
no parameter, return the file name set by SCOF as a string_var.
4.6 Beta 02
Fixes:
if adding too many user defined handler (as in more than two :) ), the
callback list of previous event handler got corrupted.
4.6 Beta 01
Fixes:
Variable names terminated with a comment without interleaving
whitespace can be referenced in scripts.
Changes:
SetScript and GetScript modified based on jazzisparis comments.
OutputLocalMapPicturesOverride:
a.k.a. OLMPOR.
OutputLocalMapPicturesOverride
Calls OutputLocalMapPictures. If you used SetOLMPGrids to
limit the number of cells, then only those will be output.
SetOutputLocalMapPicturesGrids:
a.k.a. SetOLMPGrids
SetOutputLocalMapPicturesGrids numCell
Limits OLMPOR to a square of numCell. numCell must be odd
and cannot exceed uGridsToLoad (nor 5). Which leaves 1 and 3 for valid values.
RemoveEventHandler
removes an event handler previously registered by SetEventHandler
same syntax as SetEventHandler.
if using a formlist for object, it is not required that this list
be identical to the list used for SetEventHandler.
GetCurrentEventName
Use inside the event handler UDF. Returns the eventName of the
currently fired event. Useful if the same UDF handle more than one event.
let aStringVar := GetCurrentEventName
In addition to the events supplied by NVSE, mods can also register event
handlers for events dispatched by other mods. These types of events are referred to
as "user-defined events".
The event handler for a user-defined event always takes one argument: a
Stringmap. The stringmap argument always includes the following two key-value
pairs:
"eventName": a string indicating the event which occurred
"eventSender": a string indicating the origin of the event. By default this
is the filename of the mod which dispatched the event, unless that mod supplied an
alternate sender name.
The stringmap argument will also contain any additional data supplied by the
sender of the event.
scriptname EventHandler
array_var args
begin Function {args}
print "Event " + args->eventName + " received from " + args->eventSender
print $arg->activator + " was activated by " + $arg->activatedBy
end
scriptname EventSender
begin onActivate
DispatchEvent "Activated" (ar_Map "activator"::GetSelf
"activatedBy"::GetActionRef)
end
This version supports some standard script event: tested all "in Geck". They
should correspond to the available block types in scripts.
"onadd"
"onactorequip" // Seen working. Depending of the source
event, using Print/PrintC from the event handler can be purposely forbidden.
// Also seen fired in strange context, like an actor equipping
another :)
"ondrop"
"onactorunequip"
"ondeath"
"onmurder"
"oncombatend"
"onhit"
"onhitwith"
"onpackagestart"
"onpackagedone"
"onpackagechange"
"onload"
"onmagiceffecthit" // changed from OBSE. Passes the EffectSetting,
not the effectCode, which doesn't exist.
"onsell"
"onstartcombat"
"saytodone"
"onopen"
"onclose"
"ontrigger"
"ontriggerenter"
"ontriggerleave"
"onreset"
"onactivate"
More events will be added or completed later, but there will never be every
event present in OBSE.
At least two other events can be registered "on0x0080000" and
"on0x00400000", but I don't know what event they mark :) If anybody encounter them,
please report in what context. Thank you.
Also supported are those NVSE events, corresponding to the PluginAPI message
interface:
"ExitGame"
"ExitToMainMenu"
"LoadGame"
"SaveGame"
"QQQ"
"PostLoadGame"
"RuntimeScriptError"
"DeleteGame"
"RenameGame"
"RenameNewGame"
"NewGame"
"DeleteGameName"
"RenameGameName"
"RenameNewGameName"
4.5 beta 08
Fixes:
Variable names terminated with a comment without interleaving
whitespace can be referenced in scripts.
Resolve CTD when using Animation hooks, with a big help from Queued.
4.5 beta 07
Fixes:
GetArrayVariable return type corrected.
All String and array map modification are protected by a critical
section due to concurrency issues.
Handling of {} in compiler override or let/eval expression.
You can use {} to enclose function parameters in complex
expression so the parser knows which arguments are used by which function
let aVar := aFunction { parm1 parm2 } + anotherFunction
{ parm3 parm4 parm5 }
() are used to enclose complete expression.
let aVar := ( aFunction parm1 parm2 ) + ( anotherFunction parm3
parm4 parm5 )
EquipItem2 recognises the third parameter when used.
SetHotkeyItem should no longer interrupt the calling script when called
and should work when called on an item without ExtendData.
SetHotkeyItem should properly remove the previous hotkey before setting
the new one.
RemoveMeIR should work when called on an item without ExtendData.
EquipMe and UnEquipMe should work when called from the item object
script.
All NVSE functions returning forms are explicitly declared as such.
This should be proof read by someone :)
I need to do the same for all vanilla commands.
Corrections to HealthPercent functions by jazzisparis
Fix to SetPackageLocationRadius, radius should be corrrectly set now.
Known issue:
EquipItem2 is broken in the sense that the item is equipped after
EquipItem returns so which item is equipped is not detected :( So it is the same as
EquipItem currently.
Changes:
Builtin objects preloaded are no longer reported as incomplete reads
during the load of the cosave.
Rewrote type casting in IsRefInList. Hope to avoid reported CTD.
Activated showing faction rank names as part of %c in
ExtractFormattedString. Should apply to all format specifiers functions.
Extract from OBSE documentation:
%c - replaced with the name of a component within another
object. Takes two arguments - an object (ref) and the index of the component you
want to access (short). Supported object types:
Faction - prints the male rank title of the nth rank.
NVSE already had support for AMMO (full names, short names or
abreviation).
Calling GetFirstRef/GetNumRef with a cellDepth of -1 will use
uGridsToLoad to calculate how many cells to scan.
TestExpr has been tested :)
IsPlayable is extended to weapon and ammo.
Added:
GetPerkRank:
Return actor Perk rank or -1 if the perk is not applied
[ref.]GetPerkRank [actor]
GetAltPerkRank:
Return the alternate companion Perk rank or -1 if the perk is not
applied
[ref.]GetPerkRank [actor]
Get/SetEquipmentBipedMask:
GetEquipmentBipedMask returns which flags an armor uses.
SetEquipmentBipedMask sets which flags an armor uses.
The mask is a bitmask that should be build by using
ClearBit/SetBit (see below).
The order of bit index for slots can be found in NVSE source
files (GameForms.h, search for EBipedFlags).
4 = HasBackpack
8 = Medium Armor
32 = Power Armor
64 = Non playable
128 = HeavyArmor
Other bits are either unused or unknown.
GetRefs:
returns an array of references of a given type in the current cell
same syntax as GetFirstRef,
GetRefs [formType [cellDepth [includeTaken]]]
GetRefsInCell:
returns an array of references of a given type in the specified cell
same syntax as GetFirstRefInCell,
GetRefsInCell cell [formType [cellDepth [includeTaken]]]
IsPluginInstalled:
returns 1 if the specified plugin is installed, else 0
IsPluginInstalled pluginName
GetPluginVersion:
returns the version of the specified plugin, or -1 if the plugin is not
installed
GetPluginVersion pluginName
Note: The plugin name is set by the plugin during registration and displayed in
nvse.log, it is not the filename.
GetBaseNumFactions
Returns the count of factions of an actor baseform.
let iCount := [ref.]GetNumFactions [actor|character|
creature]
GetBaseNthFaction
Returns the Nth faction of an actor baseform.
let rFaction := [ref.]GetNthFaction [actor|character|
creature]
GetBaseNthRank
Returns the Nth rank of an actor baseform. Same order as
GetBaseNthFaction.
let iRank := [ref.]GetNthRank [actor|character|creature]
GetNumRanks
Returns the number of ranks for a faction.
let iCount := GetNumRanks faction
SetNthDefaultForm
Sets the form at index in the array of default forms. !!
There is no check that the new form is valid!!
The list of default form and their corresponding
index can be found in GameForm.h (kDefaultObjectNames).
SetNthDefaultForm formIndex newForm
GetDefaultForms
Return an array of all the default forms.
The list of default form and their corresponding
index can be found in GameForm.h (kDefaultObjectNames).
let aArrayVar := GetDefaultForms
4.5 beta 06
Fixes:
Definition of Hairs and Eyes in TESRace.
Changes:
During reference variable evaluation, Player is replaced by PlayerRef
when appropriate.
Proof of concept:
Different animations set and/or different skeleton. see TestAnim.txt in
Data\nvse.
Added:
EquipItem2:
equips and runs onEquip block
[ActorRefID].EquipItemZ ObjectID:ref NoUnequipFlag:int{0, 1}
HideEquipMessage:int{0, 1}
EquipMe:
equips the calling object on its owner
ref.EquipMe
UnequipMe:
unequips the calling object on its owner
ref.UnequipMe
IsEquipped:
returns 1 if the calling object is currently being worn
Currently, it must be called on an InventoryRef, though.
ref.IsEquipped
GetInvRefsForItem:
returns an array of temp refs to objects of the specified type in
the calling container
(refs:Array) GetInvRefsForItem baseObject:ref
SetHotkeyItem:
sets the item associated with a hotkey
(nothing) SetHotkeyItem whichHotkey:short item:ref
ClearHotkey:
clears the item associated with the specified hotkey.
(nothing) ClearHotkeyItem whichHotkey:short
PrintDebug or PrintD:
Version of Print that only display something if the script is in
debug mode.
SetVariable:
Sets a numeric variable on a ref or a quest:
ref.SetVariable variableName variableValue
SetVariable variableName variableValue Quest
SetRefVariable:
Sets a form variable on a ref or a quest:
ref.SetRefVariable variableName anyForm
SetRefVariable variableName anyForm Quest
Get/SetStringIniSettings:
string_var GetStringIniSetting "settingGroup:settingName"
the : seems to be expected by the engine.
example: let s := GetStringIniSetting "sDPad:LANGUAGE"
SetStringIniSetting "settingGroup|settingName"
the | is coherent with the SetNumIniSettingsEx
4.5 beta 05
Fixes: archive contains the actual corrections.
4.5 beta 04
Fixes:
Accounted for difference in the Reference class between Runtime and
Editor.
This allows Let to use Reference.Variable without needing the
compiler override.
GetRaceName should return a valid name now.
Changes:
Rewrote GetRace and GetRaceName to be more robust and accept either a
ref or a baseForm as parameter.
4.5 beta 03
Fixes:
Looping through InventoryRef no longer removes existing extras when
count is <=1
4.5 beta 02
Fixes:
Allows ErrorLogHook to have an integer parameter before the vfprintf
format. (submitted by Queued)
EndVATScam:
Unselect any target and quit VATS mode. (ported from Queued)
4.5 beta 01
Fixes:
bad handling of $string_var name length
Changes:
User Defined Functions can have up to 15 parameters now (from 10 before).
Get/SetModelPath, GetPath functions when passed a reference, will operate on
the reference's baseForm.
4.2 beta 04
Fixes:
Pelinor's corrections to InventoryRef.
Changes:
Open/Close braces checks are added, in the NVSE parser so that any
extraneous closing brace will terminate the sub expression.
This way, said extraneous brace, and the rest of the line, will be then
parsed by the GECK parser.
This should allow mixing NVSE expressions and standard expressions in
the same source line.
(Please report any non override script that fails to compile once
converted to the compiler override)
4.2 beta 03
Fixes:
Update3D avoids the player due to camera issues.
Fixes:
Corrected handling of $: Vanilla functions should recognise the $
parameter and the result should not be truncated to the variable nae size any more.
ianpatt's Windows 8 compatibility fix for steam_loader.
Heap management not limited to debug build.
Fixes:
RemoveScript, tests for unassigned pointer now.
Label/Goto return addresses assigned by script refID. So the same label
can be used in a script and a user defined function.
Corrected the number of subprocedure called when setting a string_var.
Applies to BipedPath Funcs and GetPath funcs
4.2 beta 02
GetRace returns the race of an NPC
GetRaceName returns the name of the race of an NPC
con_SCOF imports the console command SCOF
PickOneOf returns a random item in the FormList that is present in the NPC
inventory.
SaveGame as above
To see the effect of any of those functions, you should call Update3D
Update3D
RunScript
GetCurrentScript
GetCallingScript
3 beta 02
Added isNogore to NVSEinterface
Compatible with nogore runtime version
Fixed GetFactionRank (Report the exact rank and not 1 after SetFactionRank)
3 alpha 01
New functions:
HasOwnership
checks wether an NPC owns a reference or has the required faction rank
to own said reference
IsOwned
checks wether a reference is owned by an NPC or that said NPC as the
required faction rank to own the reference
SetOwningFactionRequiredRank
set the owning faction required reference
GetDialogueSubject
Get the subject reference in a converation. That is the reference who
STARTED the conversation, (subject of Hello/Greatings topic)
GetDialogueTarget
Get the target reference in a conversation. That is the reference who
ANSWERS the conversation, (target of Hello/Greatings topic)
GetDialogueSpeaker
Get the current speaker in a conversation. That is the current subject
in a topic.
SetPackageLocationReference
Change the target reference of a package.
GetAgeClass
Classify the age of the standard races: -1 undefined. 0 is Child, 1
is default, 2 is Old, 3 is OldAged.
RemoveMeIR,
removes an inventory reference from its container, optionally
transferring it to a different container, in much the same way as the vanilla
RemoveMe command. The inventory reference becomes invalid once this command is
called and should no longer be used.
CopyIR
copies an inventory reference to the specified container. The calling
object needn't be in a container and remains valid after the command is called. If
the calling object is equipped, the copy will not be equipped.
CreateTempRef
creates a temporary reference to the specified form. This reference
does not exist in the gameworld or in a container, and remains valid for only one
frame. It is mostly useful for creating a stack of one or more items to be added to
a container with CopyIR
GetFirstRefForItem,
returns the first entry in an array of temp refs to objects of the
specified type in the calling container
GetNextRefForItem
returns the next entry in the array of temp refs to objects of the
specified type in the calling container
AddItemOwnership
Specifies the ownership info while adding an item
AddItemHealthPercentOwner
Specifies both the ownership info and the health while adding an item
SetTokenValue, SetTV
Add or modify the value of a token
GetTokenRef, GetTR
Get the referenece of a token
SetTokenRef, SetTR
Add or modify the reference of a token
SetTokenValueAndRef, SetTVR
Add or modify both the value and the reference of a token
GetPaired
Detects if ref and actor cross references each other (through item
ownership). Usage for thinks like is familly member, is partner of where there
maybe multiple instances (n n links)
GetRespawn
Checks the respawn flag on Actor
SetRespawn
Sets the respawn flag on actor. Effective on standard NPC, unreliable
on LevelledCharacters
GetPermanent
Checks the permanent flag on Reference
SetPermanet
Sets the permanent flag on Reference. Effective on standard NPC,
unreliable on LevelledCharacters
GetBaseForm
Find the actual baseForm of a Levelled form
IsRefInList
Checks whether a ref, its baseform or its leveled baseForm is in a
FormList
Changed functions
TempCloneForm
IsClonedForm
Both accept any Form as the source, rather than just 3D object to allow
for cloning of packages for example.
ListGetFormIndex
Eval version of the function created
2 beta 14
- PluginApi extended to support:
* condition functions in plugins.
* function alternate name in plugins using DEFINE_COMMAND_ALT_PLUGIN.
* NVSECommandTableInterface (like OBSE).
2 beta 13
- PluginApi extended to support Messaging Interface (like OBSE). Implemented
messages are GameLoad and GameSave.
2 beta 12:
- made weapon mod indexing the same across all functions (1-based instead of 0-
based for backwards compatibility)
2 beta 11:
- fixed Get/SetWeaponItemModValue2
2 beta 10:
- optional (compile-time) SEH wrappers for formlist functions, useful for debugging
- add .ini file (\Data\NVSE\nvse_config.ini),
- optionally hook game error reporting function, to enable add this to your
nvse_config.ini:
[Logging]
EnableGameErrorLog=1
- rename nvse_1_1.dll to nvse_1_4.dll (an old mistake that should have been fixed
long ago)
- log start time of components
- fix crash in GetHotkeyItem (tList::Iterator now understands empty nodes)
- fix SetWeaponRequiredSkill
- nogore runtime support
- from schlangster: Get/SetEquippedWeaponModFlags
- Get/SetWeaponItemModEffect/Value1/Value2
0: None
1: Increase Weapon Damage
2: Increase Clip Capacity
3: Decrease Spread
4: Decrease Weight
5: <Unused>
6: Regenerate Ammo
7: Decrease Equip Time
8: Increase Rate of Fire
9: Increase Projectile Speed
10: Increase Max. Condition
11: Silence
12: Split Beam
13: VATS Bonus
14: Increase Zoom
2 beta 9:
- document new method of getting to NiNode
- fix IsControlDisabled
2 beta 8:
- fix crash when iterating over invalid form lists (generally a sign that a mod
needs to be updated, but crashing is bad)
- support for editor 1.4.0.518
2 beta 7:
- fix GetCrosshairRef, other things relying on InterfaceManager
- more helpful error message when using the updated CS
2 beta 6:
- access to weapon flags: Get/SetWeaponFlags1
1 = ignores normal weapon resist
2 = is automatic
4 = has scope
8 = can't drop
16 = hide backpack
32 = embedded weapon
64 = don't use first-person IS animations
128 = nonplayable
- Get/SetWeaponFlags2
1 = player only
2 = NPCs use ammo
4 = no jam after reload
8 = override action points
16 = minor crime
32 = range fixed
64 = not used in normal combat
128 = override damage to weapon mult
256 = don't use third-person IS animations
512 = short burst
1024 = rumble alternate
2048 = long burst
- math functions for setting individual bits (ClearBit/SetBit)
SetBit takes an optional third parameter that clears the bit if set to zero
this is designed to be used as "set the value of this bit to X"
int a
set a to 15 ; bits 0-3 set
set a to ClearBit a 2 ; clear bit 2 (value 4)
; a is now 11
set a to SetBit a 1 0 ; would set bit 1 (value 2), but the third parameter
is 0 so instead it clears the bit
; a is now 9
- Get/SetActorBaseFlagsLow
use of unknown bits may cause random behavior
these had to be split in to two fields to avoid floating point precision
problems
1 = female
2 = essential
4 = has chargen face
8 = respawn
16 = auto-calc stats
32 = unknown
64 = unknown
128 = pc level mult
256 = use template
512 = no low-level processing
1024 = unknown
2048 = no blood spray
4096 = no blood decal
8192 = unknown
16384 = unknown
32768 = unknown
- Get/SetActorBaseFlagsHigh
1 = unknown
2 = unknown
4 = unknown
8 = unknown
16 = no VATS melee
32 = unknown
64 = can be all races
128 = unknown
256 = unknown
512 = unknown
1024 = no knockdowns
2048 = not pushable
4096 = unknown
8192 = unknown
16384 = no rotate to head track
32768 = unknown
- improve IsControlDisabled, cache now keeps track of partially disabled keys
- ExtractArgsRaw, new internal function for getting detailed information about
passed-in arguments (not a scripting command, only useful for C++ API stuff)
- support for runtime 1.4.0.525
2 beta 5:
- Get/SetWeaponLongBursts
- SetWeaponFireRate
- long strings shouldn't crash the compiler any more
- overhaul dinput code
- added an optional integer parameter to IsKeyPressed (default behavior unchanged)
the parameter is a bitfield, so the following values can be added together:
1 = return game state (buttons as seen by the game after all filtering,
previous default behavior)
2 = return raw state (unfiltered buttons, exactly what is being pressed)
4 = return inserted state (scripted keypresses only)
if multiple of the above are selected, then they are logically or'd together
8 = ignore disabled keys (returns 0 for all DisableKey'd keys)
2 beta 4:
- full pass on all parameter types, fix lots of mistakes
- fixes ListAddForm and other formlist things that were using ExtractArgsEx
2 beta 3:
- fix formlist params so they accept any form type
- fix SetUIStringEx
- document new vegas parameter types
- %c format type can print the different sub-names of ammo (0 = full name, 1 =
short name, 2 = abbreviation)
2 beta 2:
- Menu*Key functions use buffered input like they should
- log printc to IDebugLog in _DEBUG builds
- SetUIStringEx
- fix %k format specifier
- fix DataHandler::DoAddForm (updated address then reverted it then fixed it again)
- enable kWeapType_OneHandThrown type
2 beta 1:
- MessageEx/MessageBoxEx
- SetNameEx
- IsClonedForm/TempCloneForm
-
GetParentCellOwner/GetOwningFactionRequiredRank/GetParentCellOwningFactionRequiredR
ank
- fix loader misreporting when it can't find the editor
- GetLocalRefIndex/BuildRef
1 beta 10:
- support for CS 1.3.0.452
- fixed custom conditionals in dialog trees
1 beta 9:
- support for 1.3.0.452
- GetOwner
- fix LogicalNot
- report when launching a UPX'd exe
- contributions from Douglas Greiman: improved accessors for Get/SetUIFloat/String
functions, SortUIListBox:
Usage Examples:
GetUIFloat
"RepairServicesMenu/NOGLOW_BRANCH/RSM_MainRect/RSM_RepairList/RSM_RepairListTemplat
eRect:4/string"
Returns the name of the 4th item on the repair services menu.
1 beta 8:
- fix GetRepairList
- unify steam_loader and nvse_loader launch procedure
- nvse_loader tries to inject steam_loader on steam launches to avoid a race
condition
1 beta 7:
- support for 1.2.0.352
- plugin manager supports console interface
- fix crash when accessing objects with no repair list
1 beta 6:
- support for 1.2.0.314
- GetOpenKey (SetOpenKey not working yet)
- math functions
1 beta 5:
- Get/SetPlayerCurrentAmmoRounds, GetPlayerCurrentAmmo (may be usable on other
actors, will be modified if so)
- fix runtime version reporting for plugins
1 beta 4:
- support for 1.1.1.280, err 1.1.1.285 err 1.2.0.285
1 beta 3:
- fix SetUIFloat
- Script functions (IsScripted, GetScript, RemoveScript, SetScript)
- IsFormValid, IsReference
1 beta 2:
- UI functions (Get/SetUIFloat, SetUIString)
- Object query functions: GetCrosshairRef, GetDebugSelection
- GetGameRestarted, GetGameLoaded
- Imported console functions: con_ToggleMenus, con_ToggleFreeCamera,
con_ToggleCollision
- Misc object queries: GetArmorDT, SetArmorAR, SetArmorDT
- fixed %n printc formatter for TESObjectREFR and subclasses
- fixed bug in GetNumRefs for types 200 and 201
- Mod query functions: IsModLoaded, GetModIndex, GetNumLoadedMods,
GetSourceModIndex
- GetWeaponItemMod
- steam loader reports unsupported versions
- new options for nvse_loader: -skiplauncher to skip the normal launcher screen,
-minfo for debugging purposes
1 beta 1:
- everything!
- GetNVSEVersion, GetNVSERevision, GetNVSEBeta
- Basic Inventory Object functions
- Get and Set Weapon functions
- Imported console functions: con_SetGameSetting, con_SetINISetting,
con_GetINISetting, con_RefreshINI, con_Save, con_SaveINI, con_QuitGame,
con_LoadGame, con_CloseAllMenus, con_SetVel
- Form list functions
- GetEquippedObject, GetNumItems, GetInventoryObject
- CompareNames, SetName
- GetHotkeyItem
- Input functions
* Get/SetCurrentHealth
* Get/SetEquippedCurrentHealth
- Plugin support
- Ref Walking (GetFirstRef, GetNumRefs, GetFirstRefInCell, GetNumRefsInCell,
GetNextRef)
- Get/SetNumericGameSetting, Get/SetNumericIniSetting
- Loops (Label/Goto)
- PrintC, DebugPrint, Get/SetDebugMode